From 9c31c6a877ade12c8e8d16b40adebc63b3891fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B8=96=E8=B1=AA?= <1944167742@qq.com> Date: Fri, 12 Jul 2024 16:38:41 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=BC=B9=E7=AA=97=E7=BF=BB=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/report/ReportEnginePane.java | 106 +++++++++++++----- 1 file changed, 77 insertions(+), 29 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java index 9ae4983227..86a1cd5e9a 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java @@ -1,5 +1,7 @@ package com.fr.design.report; +import com.fine.swing.ui.layout.Layouts; +import com.fine.theme.utils.FineUIUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.editor.editor.IntegerEditor; @@ -43,6 +45,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; +import com.fr.design.i18n.Toolkit; /** * @author fly.li @@ -77,36 +80,54 @@ public class ReportEnginePane extends BasicBeanPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel outReportEnginePane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute")); + //JPanel outReportEnginePane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute")); + JPanel outReportEnginePane = new JPanel(); + outReportEnginePane.setLayout(FRGUIPaneFactory.createBorderLayout()); outReportEnginePane.setPreferredSize(new Dimension(600, 370)); - this.add(outReportEnginePane, BorderLayout.NORTH); + //this.add(outReportEnginePane, BorderLayout.NORTH); outReportEnginePane.add(createReportEnginePane()); - JPanel outAdvicePane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advice")); - this.add(outAdvicePane, BorderLayout.SOUTH); - outAdvicePane.setPreferredSize(new Dimension(600, 150)); + //JPanel outAdvicePane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advice")); + //this.add(outAdvicePane, BorderLayout.SOUTH); + JPanel outAdvicePane = new JPanel(); + outAdvicePane.setLayout(FRGUIPaneFactory.createBorderLayout()); + outAdvicePane.setPreferredSize(new Dimension(600, 160)); outAdvicePane.add(createAdvicePane()); + + this.add(Layouts.column(20, + Layouts.cell(FineUIUtils.wrapComponentWithTitle(outReportEnginePane, Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute"))), + Layouts.cell(FineUIUtils.wrapComponentWithTitle(outAdvicePane, Toolkit.i18nText("Fine-Design_Report_Advice")))) + .getComponent()); } private JPanel createReportEnginePane() { JPanel reportEnginePane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel clientPagingPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - clientPaging = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Enable_Client_Page")); + clientPaging = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Enable_Client_Page")); clientPaging.setSelected(false); - clientPagingPane.add(clientPaging); reportEnginePane.add(clientPagingPane); - outPagingEngineSelectPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")); - reportEnginePane.add(outPagingEngineSelectPane); + //reportEnginePane.add(Layouts.row(10, Layouts.cell(clientPagingPane)).getComponent()); + //outPagingEngineSelectPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")); + outPagingEngineSelectPane = new JPanel(); + outPagingEngineSelectPane.setLayout(FRGUIPaneFactory.createBorderLayout()); + //reportEnginePane.add(outPagingEngineSelectPane); outPagingEngineSelectPane.setVisible(false); outPagingEngineSelectPane.setPreferredSize(new Dimension(600, 300)); outPagingEngineSelectPane.add(createPagingEngineSelectPane()); clientPaging.addActionListener(new SelectActionListener(clientPaging, outPagingEngineSelectPane)); + clientPagingPane.add(clientPaging); + //reportEnginePane.add(outPagingEngineSelectPane); + //clientPagingPane.add(Layouts.box(Layouts.cell(clientPaging)).getComponent()); + reportEnginePane.add(Layouts.column(20, + Layouts.cell(clientPagingPane), + Layouts.cell(FineUIUtils.wrapComponentWithTitle(outPagingEngineSelectPane, Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")))) + .getComponent()); return reportEnginePane; } private JPanel createPagingEngineSelectPane() { engineSettingPane = new JLayeredPane(); - engineSettingPane.setPreferredSize(new Dimension(570, 240)); - engineSettingPane.setBounds(0, 0, 570, 240); + engineSettingPane.setPreferredSize(new Dimension(600, 240)); + engineSettingPane.setBounds(0, 0, 600, 240); createEngineXSettingPane(); createLineEngineSettingPane(); outLineEngineSettingPane.setVisible(false); @@ -115,8 +136,13 @@ public class ReportEnginePane extends BasicBeanPane { engineSettingPane.moveToFront(outEngineXSettingPane); engineSettingPane.setVisible(true); JPanel pagingEngineSelectPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); + //engineSettingPane.add(Layouts.column()) pagingEngineSelectPane.add(createPagingEngineRadioPanel()); pagingEngineSelectPane.add(engineSettingPane); + /*pagingEngineSelectPane.add(Layouts.column(10, + Layouts.cell(createPagingEngineSelectPane()), + Layouts.cell(engineSettingPane)) + .getComponent());*/ return pagingEngineSelectPane; } @@ -125,45 +151,58 @@ public class ReportEnginePane extends BasicBeanPane { */ private void createEngineXSettingPane() { outEngineXSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_New_Engine")); - outEngineXSettingPane.setBounds(0, 0, 570, 240); + outEngineXSettingPane.setBounds(0, 0, 700, 200); JPanel engineXSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - engineXPageQueryBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); + engineXPageQueryBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); engineXPageQueryBox.setSelected(false); pageQueryBoxPanel.add(engineXPageQueryBox); - engineXSettingPane.add(pageQueryBoxPanel); + //engineXSettingPane.add(pageQueryBoxPanel); engineXCountPerPageEditor = new IntegerEditor(new Integer(30)); engineXCountPerPageEditor.setPreferredSize(new Dimension(120, 20)); engineXPageQueryPane = createPageQueryPane(engineXCountPerPageEditor); engineXPageQueryPane.setVisible(false); - engineXSettingPane.add(engineXPageQueryPane); + //engineXSettingPane.add(engineXPageQueryPane); engineXPageQueryBox.addActionListener(new SelectActionListener(engineXPageQueryBox, engineXPageQueryPane)); JPanel rowCountPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - rowCountBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Row_Count")); + rowCountBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Row_Count")); rowCountBox.setSelected(false); rowCountPanel.add(rowCountBox); - engineXSettingPane.add(rowCountPanel); - engineXSettingPane.add(createTipPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_X_tip"))); + //engineXSettingPane.add(rowCountPanel); + //engineXSettingPane.add(createTipPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_X_tip"))); + JPanel tip = createTipPane(Toolkit.i18nText("Fine-Design_Report_Engine_X_tip")); + //engineXSettingPane.add(tip); + engineXSettingPane.add(Layouts.column(10, + Layouts.cell(pageQueryBoxPanel), + Layouts.cell(engineXPageQueryPane), + Layouts.cell(rowCountPanel), + Layouts.cell(tip)) + .getComponent()); outEngineXSettingPane.add(engineXSettingPane); } private void createLineEngineSettingPane() { outLineEngineSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Line_Engine")); - outLineEngineSettingPane.setBounds(0, 0, 570, 240); + outLineEngineSettingPane.setBounds(0, 0, 700, 200); JPanel lineEngineSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - lineEnginePageQueryBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); + lineEnginePageQueryBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); lineEnginePageQueryBox.setSelected(false); pageQueryBoxPanel.add(lineEnginePageQueryBox); - lineEngineSettingPane.add(pageQueryBoxPanel); + //lineEngineSettingPane.add(pageQueryBoxPanel); lineEngineCountPerPageEditor = new IntegerEditor(new Integer(30)); lineEngineCountPerPageEditor.setPreferredSize(new Dimension(120, 20)); lineEnginePageQueryPane = createPageQueryPane(lineEngineCountPerPageEditor); lineEnginePageQueryPane.setVisible(false); lineEngineSettingPane.add(lineEnginePageQueryPane); lineEnginePageQueryBox.addActionListener(new SelectActionListener(lineEnginePageQueryBox, lineEnginePageQueryPane)); - JPanel tipPane = createTipPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Line_Engine_tip")); - lineEngineSettingPane.add(tipPane); + JPanel tipPane = createTipPane(Toolkit.i18nText("Fine-Design_Report_Line_Engine_tip")); + //lineEngineSettingPane.add(tipPane); + lineEngineSettingPane.add(Layouts.column(10, + Layouts.cell(pageQueryBoxPanel), + Layouts.cell(lineEnginePageQueryPane), + Layouts.cell(tipPane)) + .getComponent()); outLineEngineSettingPane.add(lineEngineSettingPane); } @@ -190,16 +229,16 @@ public class ReportEnginePane extends BasicBeanPane { // 上侧文字 UILabel topExplainLabel = FRWidgetFactory.createLineWrapLabel(Toolkit.i18nText("Fine-Design_Report_Report_Engine_Warnning_Info"), 480); topExplainLabel.setForeground(new Color(0, 0, 0)); - advicePane.add(topExplainLabel); + //advicePane.add(topExplainLabel); // 下侧文字及链接 JPanel adviceDownPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - advicePane.add(adviceDownPane); + //advicePane.add(adviceDownPane); UILabel downExplainLabel = new UILabel(Toolkit.i18nText("Fine-Design_Report_Report_Detail_Reference")); - adviceDownPane.add(downExplainLabel); + //adviceDownPane.add(downExplainLabel); downExplainLabel.setForeground(new Color(0, 0, 0)); JLabel helper = new FRExplainLabel(Toolkit.i18nText("Fine-Design_Report_Community_Help")); helper.setForeground(new Color(1, 159, 222)); - adviceDownPane.add(helper); + //adviceDownPane.add(helper); helper.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -211,6 +250,15 @@ public class ReportEnginePane extends BasicBeanPane { } } }); + adviceDownPane.add(Layouts.row(20, + Layouts.cell(downExplainLabel), + Layouts.cell(helper)) + .getComponent()); + advicePane.add(Layouts.column(20, + Layouts.cell(topExplainLabel), + Layouts.cell(adviceDownPane)) + .getComponent()); + return advicePane; } @@ -222,7 +270,7 @@ public class ReportEnginePane extends BasicBeanPane { buttonGroup.add(lineEngine); radioButtons.add(newEngine); radioButtons.add(lineEngine); - double p = TableLayout.PREFERRED; + double p = TableLayout.FILL; double[] rowSize = {p}; double[] columnSize = {p, p, p, p, p}; Component[][] components = new Component[][]{ @@ -239,7 +287,7 @@ public class ReportEnginePane extends BasicBeanPane { @Override protected String title4PopupWindow() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute"); + return Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute"); } @Override From 1d662d3efb2efd28a4b7876d34852f4874e2b437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B8=96=E8=B1=AA?= <1944167742@qq.com> Date: Mon, 15 Jul 2024 09:32:57 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=BC=B9=E7=AA=97=E7=BF=BB=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/report/ReportEnginePane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java index 86a1cd5e9a..3b6e279c41 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java @@ -183,6 +183,7 @@ public class ReportEnginePane extends BasicBeanPane { private void createLineEngineSettingPane() { outLineEngineSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Line_Engine")); + // TODO SCALE动态伸缩大小 outLineEngineSettingPane.setBounds(0, 0, 700, 200); JPanel lineEngineSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); From 6963a1308011f2b5c8f449aca00c89a4de20e668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B8=96=E8=B1=AA?= <1944167742@qq.com> Date: Wed, 17 Jul 2024 11:18:20 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=BC=B9=E7=AA=97=E7=BF=BB=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../fr/design/data/datapane/ChoosePane.java | 27 ++++-- .../write/submit/DBManipulationPane.java | 69 +++++++++++---- .../fr/design/report/ReportEnginePane.java | 85 ++++++++----------- .../fr/design/report/WriteShortCutsPane.java | 47 ++++++---- .../write/submit/SubmitVisitorListPane.java | 19 ++++- 6 files changed, 153 insertions(+), 96 deletions(-) diff --git a/build.gradle b/build.gradle index 4ebe9558d3..9f6c3dd88b 100644 --- a/build.gradle +++ b/build.gradle @@ -90,8 +90,8 @@ allprojects { implementation 'com.github.weisj:jsvg:1.2.0' implementation 'com.formdev:flatlaf:3.4' implementation 'com.formdev:flatlaf-extras:3.4' - implementation 'com.fanruan.vito:gui-inspector:1.0.1' implementation 'com.fine.swing.ui:layout:1.0-SNAPSHOT' + implementation 'com.fanruan.vito:gui-inspector:1.0.2' testImplementation 'org.easymock:easymock:3.5.1' testImplementation 'org.powermock:powermock-module-junit4:1.7.1' testImplementation 'org.powermock:powermock-api-easymock:1.7.1' diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java index 99a294fdde..1011d3f254 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java @@ -1,5 +1,8 @@ package com.fr.design.data.datapane; +import com.fine.swing.ui.layout.Layouts; +import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.utils.FineUIScale; import com.fr.base.TableData; import com.fr.data.core.DataCoreUtils; import com.fr.data.core.db.DBUtils; @@ -11,6 +14,7 @@ import com.fr.data.impl.DBTableData; import com.fr.data.operator.DataOperator; import com.fr.design.DesignerEnvManager; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.border.FineBorderFactory; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.RefreshLabel.Refreshable; import com.fr.design.data.datapane.preview.PreviewLabel; @@ -39,6 +43,7 @@ import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; import com.fr.workspace.server.connection.DBConnectAuth; +import groovy.swing.factory.BoxLayoutFactory; import javax.swing.JList; import javax.swing.JOptionPane; @@ -54,9 +59,7 @@ import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; +import java.awt.*; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; @@ -68,6 +71,10 @@ import java.util.List; import java.util.Set; import java.util.concurrent.CancellationException; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.scale; + /** * @author zhou * @since 2012-7-11下午4:49:39 @@ -133,11 +140,11 @@ public class ChoosePane extends BasicBeanPane implements Refresha } public ChoosePane(Previewable parent, int labelSize) { - this.initBasicComponet(); + this.initBasicComponent(); this.initComponentsLayout(new PreviewLabel(parent == null ? this : parent), labelSize); } - private void initBasicComponet() { + private void initBasicComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); dsNameComboBox = new StringUIComboBox(); @@ -239,7 +246,15 @@ public class ChoosePane extends BasicBeanPane implements Refresha double p = TableLayout.PREFERRED; double f = TableLayout.FILL; JPanel northDSPane = TableLayoutHelper.createTableLayoutPane(coms, new double[]{p}, new double[]{p, f, p, f, p, f, COLUMN_SIZE, COLUMN_SIZE}); - + //JPanel northDSPane = new JPanel(new BorderLayout()); + + /*northDSPane.add( + row(10, + row(5, cell(l1), cell(dsNameComboBox)), + row(5, cell(l2), cell(schemaBox)), + row(5, cell(l3), cell(tableNameComboBox)), + row(5, cell(new RefreshLabel(this)), cell(previewLabel))) + .getComponent());*/ this.add(northDSPane, BorderLayout.CENTER); } diff --git a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java index 46b11d2a89..103156944d 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java @@ -1,8 +1,11 @@ package com.fr.design.write.submit; +import com.fine.swing.ui.layout.Layouts; +import com.fine.theme.utils.FineUIScale; import com.fr.base.BaseFormula; import com.fr.base.BaseUtils; import com.fr.base.Parameter; +import com.fr.cert.token.lang.Collections; import com.fr.data.DataConstants; import com.fr.data.condition.JoinCondition; import com.fr.data.condition.ListCondition; @@ -25,11 +28,14 @@ import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBoxRenderer; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilist.CheckBoxList; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.javascript.JavaScriptActionPane; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.FRLeftFlowLayout; +import com.fr.design.layout.LeftCenterRightLayout; import com.fr.design.mainframe.DesignerContext; import com.fr.design.scrollruler.ModLineBorder; import com.fr.design.utils.gui.GUICoreUtils; @@ -83,9 +89,15 @@ import java.awt.event.ItemListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.EventObject; import java.util.List; +import java.util.stream.Collectors; + +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; //august:这个东西应该分成两类,一类是有单元格的情况,一类是没有单元格的情况 public class DBManipulationPane extends BasicBeanPane { @@ -140,32 +152,45 @@ public class DBManipulationPane extends BasicBeanPane { this.v_Types = v_Types; JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(northPane, BorderLayout.NORTH); + //this.add(northPane, BorderLayout.NORTH); dmlConfigComboBox = new UIComboBox(DML_CONFIG_TYPES); - JPanel typePane = GUICoreUtils.createFlowPane(new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":"), dmlConfigComboBox}, - FlowLayout.LEFT, 10); + //JPanel typePane = GUICoreUtils.createFlowPane(new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":"), dmlConfigComboBox}, + // FlowLayout.LEFT, 10); + JPanel typePane = new JPanel(new BorderLayout()); + typePane.add(row(10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":")), + cell(dmlConfigComboBox)).getComponent(), BorderLayout.WEST); typePane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Submit_Type"))); - northPane.add(typePane, BorderLayout.NORTH); - + //northPane.add(typePane, BorderLayout.NORTH); chooseTable = new ChoosePaneSupportFormula(); chooseTable.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Table"))); chooseTable.setTableNameComboBoxPopSize(160, 320); - northPane.add(chooseTable, BorderLayout.CENTER); + //northPane.add(chooseTable, BorderLayout.CENTER); // peter:编辑的TablePane JPanel editTablePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(editTablePane, BorderLayout.CENTER); - editTablePane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Value"))); - + //this.add(editTablePane, BorderLayout.CENTER); + editTablePane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Value"))); + editTablePane.setBounds(0, 0, FineUIScale.scale(280), FineUIScale.scale(180)); keyColumnValuesTable = new KeyColumnNameValueTable(); - editTablePane.add(new JScrollPane(this.keyColumnValuesTable), BorderLayout.CENTER); + editTablePane.add(new UIScrollPane(this.keyColumnValuesTable), BorderLayout.CENTER); keyColumnValuesTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); - keyColumnValuesTable.setPreferredScrollableViewportSize(new Dimension(280, 180)); + keyColumnValuesTable.setPreferredScrollableViewportSize(new Dimension(280, 150)); keyColumnValuesTable.setShowHorizontalLines(true); + northPane.add(column(10, true, + cell(typePane), + cell(chooseTable)) + .getComponent()); + + this.add(column(10, true, + cell(northPane), + cell(editTablePane)) + .getComponent()); + initJTableColumn(); addButtons(editTablePane); @@ -187,15 +212,18 @@ public class DBManipulationPane extends BasicBeanPane { // alex:添加操作按钮 UpdateAction[] actions = this.getActions(); if (actions != null && actions.length > 0) { - JPanel controlBtnPane = new JPanel(new GridLayout(actions.length + 1, 1, 4, 4)); + JPanel controlBtnPane = new JPanel(new BorderLayout()); editTablePane.add(GUICoreUtils.createBorderPane(controlBtnPane, BorderLayout.NORTH), BorderLayout.EAST); - - for (UpdateAction action : actions) { + List buttonGroup = Arrays.stream(actions).map(action -> cell(new UIButton(action))).collect(Collectors.toList()); + /*for (UpdateAction action : actions) { controlBtnPane.add(new UIButton(action)); - } + }*/ + checkBoxUpdatePane = new JPanel(new BorderLayout(0, 0)); checkBoxUpdatePane.setPreferredSize(new Dimension(120, 20)); - controlBtnPane.add(checkBoxUpdatePane); + //buttonGroup.add(cell(checkBoxUpdatePane)); + //controlBtnPane.add(column(5, buttonGroup.toArray(new Layouts.Cell[0])).getComponent()); + //controlBtnPane.add(checkBoxUpdatePane); UpdateCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_RWA_NotChange_Unmodified")); UIButton helpButton = new UIButton(HEIP_ICON); @@ -211,8 +239,13 @@ public class DBManipulationPane extends BasicBeanPane { } }); helpButton.set4ToolbarButton(); - checkBoxUpdatePane.add(UpdateCheckBox, BorderLayout.WEST); - checkBoxUpdatePane.add(helpButton, BorderLayout.EAST); + //checkBoxUpdatePane.add(UpdateCheckBox, BorderLayout.WEST); + //checkBoxUpdatePane.add(helpButton, BorderLayout.EAST); + buttonGroup.add(row(5, cell(UpdateCheckBox), + cell(helpButton))); + //checkBoxUpdatePane.add(row(5, cell(UpdateCheckBox), + // cell(helpButton)).getComponent()); + controlBtnPane.add(column(5, buttonGroup.toArray(new Layouts.Cell[0])).getComponent()); } } diff --git a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java index 3b6e279c41..68decd16c1 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java @@ -1,6 +1,7 @@ package com.fr.design.report; import com.fine.swing.ui.layout.Layouts; +import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.FineJOptionPane; @@ -47,6 +48,11 @@ import java.util.ArrayList; import java.util.List; import com.fr.design.i18n.Toolkit; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; + /** * @author fly.li * @version 10.0 @@ -80,22 +86,18 @@ public class ReportEnginePane extends BasicBeanPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - //JPanel outReportEnginePane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute")); JPanel outReportEnginePane = new JPanel(); outReportEnginePane.setLayout(FRGUIPaneFactory.createBorderLayout()); - outReportEnginePane.setPreferredSize(new Dimension(600, 370)); - //this.add(outReportEnginePane, BorderLayout.NORTH); + outReportEnginePane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(370))); outReportEnginePane.add(createReportEnginePane()); - //JPanel outAdvicePane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advice")); - //this.add(outAdvicePane, BorderLayout.SOUTH); JPanel outAdvicePane = new JPanel(); outAdvicePane.setLayout(FRGUIPaneFactory.createBorderLayout()); - outAdvicePane.setPreferredSize(new Dimension(600, 160)); + outAdvicePane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(160))); outAdvicePane.add(createAdvicePane()); - this.add(Layouts.column(20, - Layouts.cell(FineUIUtils.wrapComponentWithTitle(outReportEnginePane, Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute"))), - Layouts.cell(FineUIUtils.wrapComponentWithTitle(outAdvicePane, Toolkit.i18nText("Fine-Design_Report_Advice")))) + this.add(column(20, true, + cell(wrapComponentWithTitle(outReportEnginePane, Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute"))), + cell(wrapComponentWithTitle(outAdvicePane, Toolkit.i18nText("Fine-Design_Report_Advice")))) .getComponent()); } @@ -105,29 +107,24 @@ public class ReportEnginePane extends BasicBeanPane { clientPaging = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Enable_Client_Page")); clientPaging.setSelected(false); reportEnginePane.add(clientPagingPane); - //reportEnginePane.add(Layouts.row(10, Layouts.cell(clientPagingPane)).getComponent()); - //outPagingEngineSelectPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")); outPagingEngineSelectPane = new JPanel(); outPagingEngineSelectPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - //reportEnginePane.add(outPagingEngineSelectPane); outPagingEngineSelectPane.setVisible(false); - outPagingEngineSelectPane.setPreferredSize(new Dimension(600, 300)); + outPagingEngineSelectPane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(300))); outPagingEngineSelectPane.add(createPagingEngineSelectPane()); clientPaging.addActionListener(new SelectActionListener(clientPaging, outPagingEngineSelectPane)); clientPagingPane.add(clientPaging); - //reportEnginePane.add(outPagingEngineSelectPane); - //clientPagingPane.add(Layouts.box(Layouts.cell(clientPaging)).getComponent()); - reportEnginePane.add(Layouts.column(20, - Layouts.cell(clientPagingPane), - Layouts.cell(FineUIUtils.wrapComponentWithTitle(outPagingEngineSelectPane, Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")))) + reportEnginePane.add(column(10, true, + cell(clientPagingPane), + cell(wrapComponentWithTitle(outPagingEngineSelectPane, Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")))) .getComponent()); return reportEnginePane; } private JPanel createPagingEngineSelectPane() { engineSettingPane = new JLayeredPane(); - engineSettingPane.setPreferredSize(new Dimension(600, 240)); - engineSettingPane.setBounds(0, 0, 600, 240); + engineSettingPane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(240))); + engineSettingPane.setBounds(0, 0, FineUIScale.scale(600), FineUIScale.scale(240)); createEngineXSettingPane(); createLineEngineSettingPane(); outLineEngineSettingPane.setVisible(false); @@ -136,7 +133,6 @@ public class ReportEnginePane extends BasicBeanPane { engineSettingPane.moveToFront(outEngineXSettingPane); engineSettingPane.setVisible(true); JPanel pagingEngineSelectPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); - //engineSettingPane.add(Layouts.column()) pagingEngineSelectPane.add(createPagingEngineRadioPanel()); pagingEngineSelectPane.add(engineSettingPane); /*pagingEngineSelectPane.add(Layouts.column(10, @@ -151,32 +147,27 @@ public class ReportEnginePane extends BasicBeanPane { */ private void createEngineXSettingPane() { outEngineXSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_New_Engine")); - outEngineXSettingPane.setBounds(0, 0, 700, 200); + outEngineXSettingPane.setBounds(0, 0, FineUIScale.scale(600), FineUIScale.scale(180)); JPanel engineXSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); engineXPageQueryBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); engineXPageQueryBox.setSelected(false); pageQueryBoxPanel.add(engineXPageQueryBox); - //engineXSettingPane.add(pageQueryBoxPanel); engineXCountPerPageEditor = new IntegerEditor(new Integer(30)); - engineXCountPerPageEditor.setPreferredSize(new Dimension(120, 20)); + engineXCountPerPageEditor.setPreferredSize(new Dimension(FineUIScale.scale(120), FineUIScale.scale(20))); engineXPageQueryPane = createPageQueryPane(engineXCountPerPageEditor); engineXPageQueryPane.setVisible(false); - //engineXSettingPane.add(engineXPageQueryPane); engineXPageQueryBox.addActionListener(new SelectActionListener(engineXPageQueryBox, engineXPageQueryPane)); JPanel rowCountPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); rowCountBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Row_Count")); rowCountBox.setSelected(false); rowCountPanel.add(rowCountBox); - //engineXSettingPane.add(rowCountPanel); - //engineXSettingPane.add(createTipPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_X_tip"))); JPanel tip = createTipPane(Toolkit.i18nText("Fine-Design_Report_Engine_X_tip")); - //engineXSettingPane.add(tip); - engineXSettingPane.add(Layouts.column(10, - Layouts.cell(pageQueryBoxPanel), - Layouts.cell(engineXPageQueryPane), - Layouts.cell(rowCountPanel), - Layouts.cell(tip)) + engineXSettingPane.add(column(10, + cell(pageQueryBoxPanel), + cell(engineXPageQueryPane), + cell(rowCountPanel), + cell(tip)) .getComponent()); outEngineXSettingPane.add(engineXSettingPane); } @@ -184,13 +175,12 @@ public class ReportEnginePane extends BasicBeanPane { private void createLineEngineSettingPane() { outLineEngineSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Line_Engine")); // TODO SCALE动态伸缩大小 - outLineEngineSettingPane.setBounds(0, 0, 700, 200); + outLineEngineSettingPane.setBounds(0, 0, FineUIScale.scale(600), FineUIScale.scale(200)); JPanel lineEngineSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); lineEnginePageQueryBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); lineEnginePageQueryBox.setSelected(false); pageQueryBoxPanel.add(lineEnginePageQueryBox); - //lineEngineSettingPane.add(pageQueryBoxPanel); lineEngineCountPerPageEditor = new IntegerEditor(new Integer(30)); lineEngineCountPerPageEditor.setPreferredSize(new Dimension(120, 20)); lineEnginePageQueryPane = createPageQueryPane(lineEngineCountPerPageEditor); @@ -198,11 +188,10 @@ public class ReportEnginePane extends BasicBeanPane { lineEngineSettingPane.add(lineEnginePageQueryPane); lineEnginePageQueryBox.addActionListener(new SelectActionListener(lineEnginePageQueryBox, lineEnginePageQueryPane)); JPanel tipPane = createTipPane(Toolkit.i18nText("Fine-Design_Report_Line_Engine_tip")); - //lineEngineSettingPane.add(tipPane); - lineEngineSettingPane.add(Layouts.column(10, - Layouts.cell(pageQueryBoxPanel), - Layouts.cell(lineEnginePageQueryPane), - Layouts.cell(tipPane)) + lineEngineSettingPane.add(column(10, + cell(pageQueryBoxPanel), + cell(lineEnginePageQueryPane), + cell(tipPane)) .getComponent()); outLineEngineSettingPane.add(lineEngineSettingPane); } @@ -230,16 +219,12 @@ public class ReportEnginePane extends BasicBeanPane { // 上侧文字 UILabel topExplainLabel = FRWidgetFactory.createLineWrapLabel(Toolkit.i18nText("Fine-Design_Report_Report_Engine_Warnning_Info"), 480); topExplainLabel.setForeground(new Color(0, 0, 0)); - //advicePane.add(topExplainLabel); // 下侧文字及链接 JPanel adviceDownPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - //advicePane.add(adviceDownPane); UILabel downExplainLabel = new UILabel(Toolkit.i18nText("Fine-Design_Report_Report_Detail_Reference")); - //adviceDownPane.add(downExplainLabel); downExplainLabel.setForeground(new Color(0, 0, 0)); JLabel helper = new FRExplainLabel(Toolkit.i18nText("Fine-Design_Report_Community_Help")); helper.setForeground(new Color(1, 159, 222)); - //adviceDownPane.add(helper); helper.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -251,13 +236,13 @@ public class ReportEnginePane extends BasicBeanPane { } } }); - adviceDownPane.add(Layouts.row(20, - Layouts.cell(downExplainLabel), - Layouts.cell(helper)) + adviceDownPane.add(row(20, + cell(downExplainLabel), + cell(helper)) .getComponent()); - advicePane.add(Layouts.column(20, - Layouts.cell(topExplainLabel), - Layouts.cell(adviceDownPane)) + advicePane.add(column(20, + cell(topExplainLabel), + cell(adviceDownPane)) .getComponent()); return advicePane; diff --git a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java index f48061d33a..e1887084d2 100644 --- a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java @@ -14,15 +14,15 @@ import com.fr.transaction.WorkerAdaptor; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.SwingConstants; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.GridLayout; -import java.awt.Insets; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + public class WriteShortCutsPane extends JPanel{ private static final int V_GAP = 20; @@ -51,15 +51,18 @@ public class WriteShortCutsPane extends JPanel{ contentPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10)); // 纵向布局,横向自适应 - contentPane.setLayout(new GridBagLayout()); + /*contentPane.setLayout(new GridBagLayout()); GridBagConstraints cons = new GridBagConstraints(); cons.fill = GridBagConstraints.HORIZONTAL; cons.weightx = 1; cons.gridx = 0; - cons.insets = new Insets(20, 0, 0, 0); - - contentPane.add(getFeatureNamePane(), cons); - contentPane.add(getHintsPane(), cons); + cons.insets = new Insets(20, 0, 0, 0);*/ + contentPane.setLayout(new BorderLayout()); + contentPane.add(column(10, true, + cell(getFeatureNamePane()), + cell(getHintsPane())).getComponent()); + //contentPane.add(getFeatureNamePane()); + //contentPane.add(getHintsPane()); return contentPane; } @@ -77,16 +80,20 @@ public class WriteShortCutsPane extends JPanel{ JPanel switchBtnPane = getSwitchBtnPane(); nextRowHK = new UILabel(nextRowString, SwingConstants.CENTER); - JPanel centerPane = new JPanel(new GridLayout(2, 4, 0, 0)); + JPanel centerPane = new JPanel(new FlowLayout(FlowLayout.CENTER)); centerPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0)); - centerPane.add(name); + /*centerPane.add(name); centerPane.add(nextCol); centerPane.add(new JPanel()); centerPane.add(nextRow); centerPane.add(shortName); centerPane.add(nextColHK); centerPane.add(switchBtnPane); - centerPane.add(nextRowHK); + centerPane.add(nextRowHK);*/ + centerPane.add(column(20, true, + row(50, cell(name), cell(nextCol), flex(50), cell(nextRow)), + row(50, cell(shortName), cell(nextColHK), cell(switchBtnPane), cell(nextRowHK)) + ).getComponent()); featureNamePane.add(centerPane, BorderLayout.CENTER); @@ -116,16 +123,22 @@ public class WriteShortCutsPane extends JPanel{ preCol = new UILabel("Shift+" + nextColString, SwingConstants.CENTER); preRow = new UILabel("Shift+" + nextRowString, SwingConstants.CENTER); - JPanel centerPane = new JPanel(new GridLayout(2, 3, 0, V_GAP)); + JPanel centerPane = new JPanel(new FlowLayout(FlowLayout.CENTER)); centerPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 100)); - centerPane.add(systemDefault); + /*centerPane.add(systemDefault); centerPane.add(preColText); centerPane.add(preCol); centerPane.add(new JPanel()); centerPane.add(preRowText); - centerPane.add(preRow); + centerPane.add(preRow);*/ + centerPane.add(row(80, + column(flex(), cell(systemDefault), flex()), + column(20, + row(80, cell(preColText), cell(preCol)), + row(80, cell(preRowText), cell(preRow))) + ).getComponent()); hintsPane.add(centerPane, BorderLayout.CENTER); diff --git a/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java b/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java index 6d5aac3022..e0890a65a2 100644 --- a/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java +++ b/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java @@ -33,6 +33,10 @@ import java.awt.event.ItemListener; import java.util.*; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; + public class SubmitVisitorListPane extends ObjectJControlPane { public SubmitVisitorListPane(ElementCasePane ePane) { @@ -186,12 +190,19 @@ public class SubmitVisitorListPane extends ObjectJControlPane { } csjConfigComboBox = new UIComboBox(configTypes.toArray()); - JPanel typePane = GUICoreUtils.createFlowPane(new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":"), csjConfigComboBox}, - FlowLayout.LEFT, 10); + //JPanel typePane = GUICoreUtils.createFlowPane(new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":"), csjConfigComboBox}, + // FlowLayout.LEFT, 10); + JPanel typePane = new JPanel(new BorderLayout()); + typePane.add(row(10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":")), + cell(csjConfigComboBox)).getComponent(), BorderLayout.WEST); typePane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Submit_Type"))); - this.add(typePane, BorderLayout.NORTH); + /*this.add(typePane, BorderLayout.NORTH); - this.add(customCardPane, BorderLayout.CENTER); + this.add(customCardPane, BorderLayout.CENTER);*/ + this.add(column(10, + cell(typePane), + cell(customCardPane)).getComponent()); csjConfigComboBox.addItemListener(new ItemListener() { @Override From e3b9ac78c67bf930c1cf5c2a1366c720639b88b2 Mon Sep 17 00:00:00 2001 From: renekton Date: Thu, 18 Jul 2024 14:33:48 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BC=95=E6=93=8E?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=BC=B9=E7=AA=97=E7=BF=BB=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/frpane/ObjectProperiesPane.java | 4 +- .../itableeditorpane/UIArrayTableModel.java | 5 +- .../fr/design/write/submit/CustomJobPane.java | 33 +++++++--- .../fr/design/report/ReportEnginePane.java | 60 ++++++++++--------- .../fr/design/report/WriteShortCutsPane.java | 2 +- .../design/webattr/ReportWriteAttrPane.java | 2 +- .../write/submit/SubmitVisitorListPane.java | 4 +- 7 files changed, 67 insertions(+), 43 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/ObjectProperiesPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/ObjectProperiesPane.java index e946ad4f94..de904f5a45 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/ObjectProperiesPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/ObjectProperiesPane.java @@ -51,7 +51,9 @@ public class ObjectProperiesPane extends BasicBeanPane { JScrollPane selectedItemScrollPane = new JScrollPane(); selectedItemScrollPane.setViewportView(northPane); selectedItemScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - this.add(selectedItemScrollPane, BorderLayout.CENTER); + JPanel centerPane = new JPanel(new BorderLayout()); + centerPane.add(selectedItemScrollPane); + this.add(centerPane, BorderLayout.CENTER); } @Override diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UIArrayTableModel.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UIArrayTableModel.java index b42358dfbc..15d166bcd2 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UIArrayTableModel.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UIArrayTableModel.java @@ -3,6 +3,7 @@ package com.fr.design.gui.itableeditorpane; import java.awt.event.ActionEvent; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class UIArrayTableModel extends UITableModelAdapter implements ActionStyle { @@ -67,7 +68,9 @@ public class UIArrayTableModel extends UITableModelAdapter implements @Override public void actionPerformed(ActionEvent e) { super.actionPerformed(e); - addRow(new Object[getColumnCount()]); + Object[] values = new Object[getColumnCount()]; + Arrays.fill(values, "="); + addRow(values); fireTableDataChanged(); } } diff --git a/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java b/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java index 6e4f2d803f..717f19b907 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java @@ -22,6 +22,10 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * Author : Shockway * Date: 13-7-29 @@ -36,7 +40,7 @@ public abstract class CustomJobPane extends BasicBeanPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel reportletNamePane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(); classNameTextField = new UITextField(getLengthOfTextField()); - reportletNamePane.add(classNameTextField); + //reportletNamePane.add(classNameTextField); UIButton browserButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")); browserButton.setPreferredSize(new Dimension( @@ -48,8 +52,9 @@ public abstract class CustomJobPane extends BasicBeanPane { GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 20, classNameTextField.getPreferredSize().height)); - reportletNamePane.add(browserButton); - reportletNamePane.add(editButton); + /*reportletNamePane.add(browserButton); + reportletNamePane.add(editButton);*/ + UITextArea area = new UITextArea(2, 1); browserButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { @@ -60,6 +65,7 @@ public abstract class CustomJobPane extends BasicBeanPane { new DialogActionAdapter() { public void doOk() { classNameTextField.setText(bPane.getClassPath()); + area.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Extend_Class", "com.fr.data.AbstractSubmitTask")); checkAddButtonEnable(); } }).setVisible(true); @@ -73,6 +79,7 @@ public abstract class CustomJobPane extends BasicBeanPane { new DialogActionAdapter() { public void doOk() { classNameTextField.setText(javaEditorPane.getClassText()); + area.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Extend_Class", "com.fr.data.AbstractSubmitTask")); checkAddButtonEnable(); } }); @@ -87,18 +94,28 @@ public abstract class CustomJobPane extends BasicBeanPane { }); reportletNamePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Class_Name"), null)); - this.add(reportletNamePane, BorderLayout.NORTH); + reportletNamePane.add(row(10, + cell(classNameTextField).weight(1.0), + cell(browserButton), + cell(editButton) + ).getComponent()); + //this.add(reportletNamePane, BorderLayout.NORTH); objectProperiesPane = new ObjectProperiesPane(); objectProperiesPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Property"), null)); - this.add(objectProperiesPane, BorderLayout.CENTER); + //this.add(objectProperiesPane, BorderLayout.CENTER); - UITextArea area = new UITextArea(2, 1); - area.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Extend_Class", "com.fr.data.AbstractSubmitTask")); + //UITextArea area = new UITextArea(2, 1); + //area.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Extend_Class", "com.fr.data.AbstractSubmitTask")); JPanel dsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); dsPane.add(area); dsPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Job_Description"), null)); - this.add(dsPane, BorderLayout.SOUTH); + //this.add(dsPane, BorderLayout.SOUTH); + this.add(column( + cell(reportletNamePane), + cell(objectProperiesPane).weight(1.0), + cell(dsPane) + ).getComponent()); checkAddButtonEnable(); } diff --git a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java index 68decd16c1..ed41dd771e 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ReportEnginePane.java @@ -51,7 +51,9 @@ import com.fr.design.i18n.Toolkit; import static com.fine.swing.ui.layout.Layouts.cell; import static com.fine.swing.ui.layout.Layouts.column; import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.box; import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; +import static com.fine.theme.utils.FineUIScale.scale; /** * @author fly.li @@ -61,7 +63,7 @@ import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; public class ReportEnginePane extends BasicBeanPane { private static final int LABEL_HEIGHT = 55; private JPanel outLineEngineSettingPane; - private JLayeredPane engineSettingPane; + private JPanel engineSettingPane; private UICheckBox clientPaging; private UICheckBox lineEnginePageQueryBox; private UICheckBox engineXPageQueryBox; @@ -86,51 +88,54 @@ public class ReportEnginePane extends BasicBeanPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel outReportEnginePane = new JPanel(); - outReportEnginePane.setLayout(FRGUIPaneFactory.createBorderLayout()); - outReportEnginePane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(370))); + JPanel outReportEnginePane = new JPanel(new BorderLayout()); + createOutPagingEngineSelectPane(); outReportEnginePane.add(createReportEnginePane()); JPanel outAdvicePane = new JPanel(); outAdvicePane.setLayout(FRGUIPaneFactory.createBorderLayout()); outAdvicePane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(160))); outAdvicePane.add(createAdvicePane()); - this.add(column(20, true, + this.add(column(10, cell(wrapComponentWithTitle(outReportEnginePane, Toolkit.i18nText("Fine-Design_Report_Report_Engine_Attribute"))), + cell(wrapComponentWithTitle(outPagingEngineSelectPane, Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select"))).weight(1.0), cell(wrapComponentWithTitle(outAdvicePane, Toolkit.i18nText("Fine-Design_Report_Advice")))) .getComponent()); } + private void createOutPagingEngineSelectPane() { + outPagingEngineSelectPane = new JPanel(new BorderLayout()); + outPagingEngineSelectPane.setVisible(false); + outPagingEngineSelectPane.add(createPagingEngineSelectPane()); + } + private JPanel createReportEnginePane() { - JPanel reportEnginePane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); - JPanel clientPagingPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + JPanel reportEnginePane = new JPanel(new BorderLayout()); clientPaging = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Enable_Client_Page")); clientPaging.setSelected(false); - reportEnginePane.add(clientPagingPane); - outPagingEngineSelectPane = new JPanel(); + /*outPagingEngineSelectPane = new JPanel(); outPagingEngineSelectPane.setLayout(FRGUIPaneFactory.createBorderLayout()); outPagingEngineSelectPane.setVisible(false); outPagingEngineSelectPane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(300))); - outPagingEngineSelectPane.add(createPagingEngineSelectPane()); + outPagingEngineSelectPane.add(createPagingEngineSelectPane());*/ clientPaging.addActionListener(new SelectActionListener(clientPaging, outPagingEngineSelectPane)); - clientPagingPane.add(clientPaging); - reportEnginePane.add(column(10, true, - cell(clientPagingPane), - cell(wrapComponentWithTitle(outPagingEngineSelectPane, Toolkit.i18nText("Fine-Design_Report_Paging_Engine_Select")))) - .getComponent()); + reportEnginePane.add(clientPaging); return reportEnginePane; } private JPanel createPagingEngineSelectPane() { - engineSettingPane = new JLayeredPane(); - engineSettingPane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(240))); - engineSettingPane.setBounds(0, 0, FineUIScale.scale(600), FineUIScale.scale(240)); + engineSettingPane = new JPanel(new BorderLayout()); createEngineXSettingPane(); createLineEngineSettingPane(); outLineEngineSettingPane.setVisible(false); - engineSettingPane.add(outEngineXSettingPane, JLayeredPane.DEFAULT_LAYER); - engineSettingPane.add(outLineEngineSettingPane, JLayeredPane.DEFAULT_LAYER); - engineSettingPane.moveToFront(outEngineXSettingPane); + outEngineXSettingPane.setPreferredSize(new Dimension(scale(625), scale(220))); + outLineEngineSettingPane.setPreferredSize(new Dimension(scale(625), scale(220))); + engineSettingPane.add(box(cell(outEngineXSettingPane), + cell(outLineEngineSettingPane)).getComponent() + , BorderLayout.WEST); + /*engineSettingPane.add(outEngineXSettingPane, JLayeredPane.DEFAULT_LAYER); + engineSettingPane.add(outLineEngineSettingPane, JLayeredPane.DEFAULT_LAYER);*/ + //engineSettingPane.moveToFront(outEngineXSettingPane); engineSettingPane.setVisible(true); JPanel pagingEngineSelectPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); pagingEngineSelectPane.add(createPagingEngineRadioPanel()); @@ -147,7 +152,6 @@ public class ReportEnginePane extends BasicBeanPane { */ private void createEngineXSettingPane() { outEngineXSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_New_Engine")); - outEngineXSettingPane.setBounds(0, 0, FineUIScale.scale(600), FineUIScale.scale(180)); JPanel engineXSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); engineXPageQueryBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); @@ -174,8 +178,6 @@ public class ReportEnginePane extends BasicBeanPane { private void createLineEngineSettingPane() { outLineEngineSettingPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Line_Engine")); - // TODO SCALE动态伸缩大小 - outLineEngineSettingPane.setBounds(0, 0, FineUIScale.scale(600), FineUIScale.scale(200)); JPanel lineEngineSettingPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); JPanel pageQueryBoxPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); lineEnginePageQueryBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Fixed_Line_Paging")); @@ -288,14 +290,14 @@ public class ReportEnginePane extends BasicBeanPane { radioButtons.get(0).setSelected(ob.getEngineState() == LayerReportAttr.ENGINE_X); radioButtons.get(1).setSelected(ob.getEngineState() == LayerReportAttr.LINE_ENGINE); if (ob.getEngineState() == LayerReportAttr.ENGINE_X) { - engineSettingPane.moveToFront(outEngineXSettingPane); + //engineSettingPane.moveToFront(outEngineXSettingPane); outEngineXSettingPane.setVisible(true); outLineEngineSettingPane.setVisible(false); engineXCountPerPageEditor.setValue(new Integer(ob.getCountPerPage())); engineXPageQueryBox.setSelected(ob.isPageQuery()); engineXPageQueryPane.setVisible(ob.isPageQuery()); } else { - engineSettingPane.moveToFront(outLineEngineSettingPane); + //engineSettingPane.moveToFront(outLineEngineSettingPane); outEngineXSettingPane.setVisible(false); outLineEngineSettingPane.setVisible(true); lineEngineCountPerPageEditor.setValue(new Integer(ob.getCountPerPage())); @@ -369,11 +371,11 @@ public class ReportEnginePane extends BasicBeanPane { private class EngineSelectActionListener implements ActionListener { private AbstractButton source; - private JLayeredPane target; + private JPanel target; private JPanel showTarget; private JPanel notShowTarget; - private EngineSelectActionListener(AbstractButton source, JLayeredPane target, JPanel showTarget, JPanel notShowTarget) { + private EngineSelectActionListener(AbstractButton source, JPanel target, JPanel showTarget, JPanel notShowTarget) { this.source = source; this.target = target; this.showTarget = showTarget; @@ -390,7 +392,7 @@ public class ReportEnginePane extends BasicBeanPane { target.setVisible(true); showTarget.setVisible(true); notShowTarget.setVisible(false); - target.moveToFront(showTarget); + //target.moveToFront(showTarget); } else { target.setVisible(false); } diff --git a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java index e1887084d2..968dfdd896 100644 --- a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java @@ -91,7 +91,7 @@ public class WriteShortCutsPane extends JPanel{ centerPane.add(switchBtnPane); centerPane.add(nextRowHK);*/ centerPane.add(column(20, true, - row(50, cell(name), cell(nextCol), flex(50), cell(nextRow)), + row(50, cell(name), cell(nextCol), flex(), cell(nextRow)), row(50, cell(shortName), cell(nextColHK), cell(switchBtnPane), cell(nextRowHK)) ).getComponent()); diff --git a/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java b/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java index 356fce98c9..5d9a050c8a 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java @@ -40,7 +40,7 @@ public class ReportWriteAttrPane extends LoadingBasicPane { @Override protected synchronized void initComponents(JPanel container) { container.setLayout(FRGUIPaneFactory.createBorderLayout()); - final UITabbedPane tabbedPane = new UITabbedPane(SwingConstants.TOP, JTabbedPane.SCROLL_TAB_LAYOUT); + final UITabbedPane tabbedPane = new UITabbedPane(SwingConstants.TOP, JTabbedPane.WRAP_TAB_LAYOUT); container.add(tabbedPane, BorderLayout.CENTER); // peter: writeSQLAttrList的编辑. diff --git a/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java b/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java index e0890a65a2..91475900d9 100644 --- a/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java +++ b/designer-realize/src/main/java/com/fr/design/write/submit/SubmitVisitorListPane.java @@ -200,9 +200,9 @@ public class SubmitVisitorListPane extends ObjectJControlPane { /*this.add(typePane, BorderLayout.NORTH); this.add(customCardPane, BorderLayout.CENTER);*/ - this.add(column(10, + this.add(column( cell(typePane), - cell(customCardPane)).getComponent()); + cell(customCardPane).weight(1.0)).getComponent()); csjConfigComboBox.addItemListener(new ItemListener() { @Override From be064cc5e7a60d3fbfa6a9ddd85998aebe64c46b Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 29 Jul 2024 15:50:58 +0800 Subject: [PATCH 05/13] =?UTF-8?q?REPORT-127437=20feat:=20UI=20=E7=BF=BB?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../ConditionAttrSingleConditionPane.java | 1 + .../condition/ConditionAttributesPane.java | 50 +++- .../design/condition/FlowLayoutExample.java | 46 +++ .../condition/HighLightConditionAction.java | 1 + .../design/condition/SingleConditionPane.java | 5 +- .../data/datapane/ESDStrategyConfigPane.java | 38 ++- .../connect/ConnectionTableProcedurePane.java | 52 ++-- .../connect/ItemEditableComboBoxPanel.java | 13 +- .../preview/sql/PreviewPerformedSqlPane.java | 5 +- .../tabledatapane/DBTableDataPane.java | 54 ++-- .../tabledatapane/ProcedureDataPane.java | 19 +- .../StoreProcedureParameterPane.java | 44 +-- .../StoreProcedureTableModel.java | 3 - .../gui/controlpane/JListControlPane.java | 6 +- .../fr/design/gui/frpane/FineTabbedPane.java | 9 + .../fr/design/gui/ilist/TableViewList.java | 7 +- .../itableeditorpane/UITableEditorPane.java | 19 ++ .../CheckBoxTreeCellRenderer.java | 50 +++- .../design/gui/style/FollowingThemePane.java | 1 - .../roleAuthority/ReportAndFSManagePane.java | 25 +- .../java/com/fr/design/style/BorderPane.java | 156 ++++------ .../java/com/fr/design/style/FRFontPane.java | 212 +++++--------- .../com/fr/design/style/FontFamilyPane.java | 23 +- .../fr/design/style/FontSizeStylePane.java | 91 ++---- .../java/com/fr/design/style/FormatPane.java | 73 +++-- .../background/BackgroundButtonPane.java | 8 +- .../BackgroundCardSwitchButtonPane.java | 7 +- .../style/background/BackgroundPane.java | 47 +-- .../background/BackgroundPane4Browser.java | 7 +- .../style/background/BackgroundTabPane.java | 7 +- .../gradient/GradientBackgroundPane.java | 56 ++-- .../design/style/background/impl/BPane.java | 20 +- .../background/impl/ImageBackgroundPane.java | 48 +-- .../background/impl/NullBackgroundPane.java | 3 +- .../impl/PatternBackgroundPane.java | 40 +-- .../design/style/color/ColorAdjustPane.java | 9 +- .../style/color/ColorSelectDetailPane.java | 62 +++- .../style/color/CustomChooserPanel.java | 160 +++++----- .../style/color/DetailColorSelectPane.java | 41 +-- .../style/color/NewColorSelectPane.java | 75 +++-- .../style/color/RecentUseColorPane.java | 9 +- .../fr/design/style/color/UsedColorPane.java | 1 - .../com/fine/theme/icon/digitalPlatform.svg | 7 + .../resources/com/fine/theme/icon/logo.svg | 4 + .../resources/com/fine/theme/icon/pages.svg | 3 + .../com/fine/theme/icon/previewSql.svg | 14 + .../resources/com/fine/theme/icon/tables.svg | 8 + .../resources/com/fine/theme/icon/time.svg | 3 + .../resources/com/fine/theme/icon/views.svg | 11 + .../fine/theme/light/ui/fine_light.icon.json | 8 + .../module/ChartEmptyDataStylePane.java | 41 ++- .../design/module/ChartPreFillStylePane.java | 33 +-- .../fr/design/module/ChartPreStylePane.java | 21 +- .../replace/ui/ITReplaceNorthPanel.java | 179 ++++++++---- .../replace/ui/ITReplaceSouthPanel.java | 2 - .../replace/ui/ITReplaceWestPanel.java | 29 +- .../actions/replace/ui/ITTableButton.java | 14 +- .../actions/replace/ui/ITTableEditor.java | 24 +- .../actions/replace/ui/ITTableEditorPane.java | 44 ++- .../com/fr/design/condition/BackPane.java | 17 +- .../design/condition/BorderHighlightPane.java | 15 +- .../com/fr/design/condition/FontPane.java | 18 +- .../fr/design/condition/ForeGroundPane.java | 15 +- .../HighLightConditionAttributesPane.java | 6 +- .../fr/design/condition/HyperlinkPane.java | 18 +- .../fr/design/condition/NewRealValuePane.java | 15 +- .../com/fr/design/condition/PaddingPane.java | 21 +- .../com/fr/design/condition/PagePane.java | 15 +- .../condition/PresentHighlightPane.java | 16 +- .../java/com/fr/design/condition/WHPane.java | 19 +- .../design/condition/WidgetHighlightPane.java | 19 +- .../headerfooter/HFAttributesEditDialog.java | 36 +-- .../fr/design/headerfooter/HFComponent.java | 13 +- .../headerfooter/HeaderFooterEditPane.java | 134 ++++++--- .../design/headerfooter/HeaderFooterPane.java | 13 +- .../com/fr/design/headerfooter/ImagePane.java | 42 ++- .../mainframe/AuthorityToolBarPane.java | 37 +-- .../ElementCasePaneAuthorityEditPane.java | 1 - .../report/NewReportBackgroundPane.java | 44 +-- .../fr/design/report/ReportColumnsPane.java | 149 ++++++---- .../report/freeze/FreezeAndRepeatPane.java | 2 +- .../freeze/RepeatAndFreezeSettingPane.java | 273 +++++++++++------- 83 files changed, 1756 insertions(+), 1232 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/digitalPlatform.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/logo.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/pages.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/previewSql.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/tables.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/time.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/views.svg diff --git a/build.gradle b/build.gradle index 4ebe9558d3..7201922fe8 100644 --- a/build.gradle +++ b/build.gradle @@ -90,7 +90,7 @@ allprojects { implementation 'com.github.weisj:jsvg:1.2.0' implementation 'com.formdev:flatlaf:3.4' implementation 'com.formdev:flatlaf-extras:3.4' - implementation 'com.fanruan.vito:gui-inspector:1.0.1' + implementation 'com.fanruan.vito:gui-inspector:1.0.2' implementation 'com.fine.swing.ui:layout:1.0-SNAPSHOT' testImplementation 'org.easymock:easymock:3.5.1' testImplementation 'org.powermock:powermock-module-junit4:1.7.1' diff --git a/designer-base/src/main/java/com/fr/design/condition/ConditionAttrSingleConditionPane.java b/designer-base/src/main/java/com/fr/design/condition/ConditionAttrSingleConditionPane.java index 751f8b2676..0952253f4e 100644 --- a/designer-base/src/main/java/com/fr/design/condition/ConditionAttrSingleConditionPane.java +++ b/designer-base/src/main/java/com/fr/design/condition/ConditionAttrSingleConditionPane.java @@ -40,6 +40,7 @@ public abstract class ConditionAttrSingleConditionPane extends SingleConditio conditionAttributesPane.resetUseAbleActionList(); conditionAttributesPane.updateMenuDef(); conditionAttributesPane.checkConditionPane(); + conditionAttributesPane.resetWindow(); conditionAttributesPane.redraw(); } diff --git a/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java b/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java index 5d6ee4e5ac..06fb8fcb86 100644 --- a/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java +++ b/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java @@ -1,6 +1,9 @@ package com.fr.design.condition; +import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.utils.FineUIUtils; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.common.annotations.Open; import com.fr.design.actions.UpdateAction; import com.fr.design.beans.BasicBeanPane; @@ -10,14 +13,21 @@ import com.fr.design.menu.ToolBarDef; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.log.FineLoggerFactory; -import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollPane; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; -import java.awt.Dimension; + +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.fix; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; @Open public abstract class ConditionAttributesPane extends BasicBeanPane { @@ -33,17 +43,13 @@ public abstract class ConditionAttributesPane extends BasicBeanPane { //可用的Actions. protected java.util.List useAbleActionList = new java.util.ArrayList(); - protected void initComponents() { - this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - - // 属性 界面 - JPanel propertyChangePane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(propertyChangePane); + protected JScrollPane selectedItemScrollPane = new JScrollPane(); - propertyChangePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Property") + ":", null)); + protected void initComponents() { + this.setLayout(new BorderLayout()); // 选择要改变的属性. - JPanel addItemPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + JPanel addItemPane = new JPanel(new BorderLayout()); ToolBarDef toolbarDef = new ToolBarDef(); menuDef = new CellHighlightAddMenuDef(); @@ -55,22 +61,29 @@ public abstract class ConditionAttributesPane extends BasicBeanPane { updateMenuDef(); UIToolbar toolBar = ToolBarDef.createJToolBar(); + toolBar.setLayout(new BorderLayout()); + toolBar.setBorder(new FineRoundBorder()); + toolBar.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); toolbarDef.updateToolBar(toolBar); - addItemPane.add(toolBar); + addItemPane.add(toolBar, BorderLayout.WEST); - propertyChangePane.add(addItemPane); + addItemPane.setBorder(new FineRoundBorder()); selectedItemPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); -// selectedItemPane.setLayout(new BoxLayout(selectedItemPane,BoxLayout.Y_AXIS)); // 选中的添加Itempane - JScrollPane selectedItemScrollPane = new JScrollPane(); selectedItemScrollPane.setViewportView(selectedItemPane); selectedItemScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); selectedItemScrollPane.setMinimumSize(new Dimension((int) selectedItemScrollPane.getPreferredSize().getWidth(), MIN_HEIGHT)); dealScrollPane(selectedItemScrollPane); - propertyChangePane.add(selectedItemScrollPane); + + this.add(FineUIUtils.wrapComponentWithTitle(column( + 10, + row(cell(addItemPane),flex()), + cell(selectedItemScrollPane).with(it -> it.setBorder(new FineRoundBorder())), + fix(10) + ).getComponent(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Property")), BorderLayout.NORTH); } protected void dealScrollPane(JScrollPane scrollPane){ @@ -125,6 +138,13 @@ public abstract class ConditionAttributesPane extends BasicBeanPane { } } + /** + * 根据所需属性个数设置属性布局大小 + */ + public void resetWindow() { + selectedItemScrollPane.setPreferredSize(new Dimension(selectedItemScrollPane.getWidth(), Math.min(35 * (classPaneMap.size() - useAbleActionList.size()), 150))); + } + public void removeConditionAttrSingleConditionPane(JComponent component) { selectedItemPane.remove(component); } diff --git a/designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java b/designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java new file mode 100644 index 0000000000..3c0177f5d3 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java @@ -0,0 +1,46 @@ +package com.fr.design.condition; + +import javax.swing.*; +import java.awt.*; + +public class FlowLayoutExample { + public static void main(String[] args) { + JFrame frame = new JFrame("FlowLayout Example"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(400, 300); + + // 创建一个主 JPanel 使用 BorderLayout + JPanel mainPanel = new JPanel(new BorderLayout()); + + // 创建一个居中面板 使用 FlowLayout 并设置为左对齐 + JPanel rowPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + + // 添加一些组件到 rowPanel + rowPanel.add(new JButton("Button 1")); + rowPanel.add(new JButton("Button 2")); + rowPanel.add(new JButton("Button 3")); + + // 创建一个带有 GridBagLayout 的面板,用于垂直居中 rowPanel + JPanel centerPanel = new JPanel(new GridBagLayout()); + + // 设置 GridBagConstraints 以在垂直方向居中 rowPanel + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.weightx = 1; + gbc.weighty = 1; + gbc.anchor = GridBagConstraints.NORTH; + gbc.fill = GridBagConstraints.HORIZONTAL; + + centerPanel.add(rowPanel, gbc); + + // 将居中面板添加到主面板的中间 + mainPanel.add(centerPanel, BorderLayout.CENTER); + centerPanel.setBorder(BorderFactory.createMatteBorder(1,1,1,1, Color.black)); + + // 将主面板添加到 JFrame + frame.add(mainPanel); + + frame.setVisible(true); + } +} diff --git a/designer-base/src/main/java/com/fr/design/condition/HighLightConditionAction.java b/designer-base/src/main/java/com/fr/design/condition/HighLightConditionAction.java index 70ae023bf7..953a9f2605 100644 --- a/designer-base/src/main/java/com/fr/design/condition/HighLightConditionAction.java +++ b/designer-base/src/main/java/com/fr/design/condition/HighLightConditionAction.java @@ -29,6 +29,7 @@ public class HighLightConditionAction extends UpdateAction { conditionAttributesPane.removeUpdateActionFromUsableList(this); conditionAttributesPane.updateMenuDef(); conditionAttributesPane.checkConditionPane(); + conditionAttributesPane.resetWindow(); conditionAttributesPane.redraw(); conditionAttrSingleConditionPane.setDefault(); } diff --git a/designer-base/src/main/java/com/fr/design/condition/SingleConditionPane.java b/designer-base/src/main/java/com/fr/design/condition/SingleConditionPane.java index 17dedf60aa..8f2c3008c0 100644 --- a/designer-base/src/main/java/com/fr/design/condition/SingleConditionPane.java +++ b/designer-base/src/main/java/com/fr/design/condition/SingleConditionPane.java @@ -5,6 +5,7 @@ import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import com.fine.theme.icon.LazyIcon; import com.fr.base.BaseUtils; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.layout.FRGUIPaneFactory; @@ -25,13 +26,11 @@ public abstract class SingleConditionPane extends BasicPane { if (isRemove) { if(cancel == null) { - cancel = new UIButton(BaseUtils.readIcon("/com/fr/base/images/cell/control/remove.png")); + cancel = new UIButton(new LazyIcon("remove")); cancel.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Action_Remove")); cancel.addActionListener(cancleListener); cancel.setMargin(new Insets(0, 0, 0, 0)); } - - this.add(cancel); } } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java index 0106654e8f..bcec594978 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java @@ -1,5 +1,7 @@ package com.fr.design.data.datapane; +import com.fine.theme.utils.FineUIUtils; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.icheckbox.UICheckBox; @@ -33,6 +35,9 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; + /** * @author rinoux * @version 10.0 @@ -72,21 +77,24 @@ public class ESDStrategyConfigPane extends BasicBeanPane { setLayout(FRGUIPaneFactory.createM_BorderLayout()); this.selectAutoUpdate = new UIRadioButton(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Every_Interval")); - this.updateInterval = new UITextField(4); this.shouldEvolve = new UICheckBox(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Auto_Evolved_Strategy"), false); this.shouldEvolve.setEnabled(false); + this.shouldEvolve.setBorder(new ScaledEmptyBorder(0, 4, 0, 0)); this.updateIntervalCheckTips = new UILabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Error_Interval_Format")); this.updateIntervalCheckTips.setForeground(Color.RED); this.updateIntervalCheckTips.setVisible(false); - + addListener(); this.selectBySchema = new UIRadioButton(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cron")); this.schemaTime = new UITextField(10); this.schemaTimeCheckTips = new UILabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Error_Time_Format")); this.schemaTimeCheckTips.setVisible(false); this.schemaTimeCheckTips.setForeground(Color.RED); + addCenterPanel(); + } + private void addListener() { this.selectAutoUpdate.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent e) { ESDStrategyConfigPane.this.selectBySchema.setSelected(!ESDStrategyConfigPane.this.selectAutoUpdate.isSelected()); @@ -105,18 +113,6 @@ public class ESDStrategyConfigPane extends BasicBeanPane { } }); - JPanel pane = FRGUIPaneFactory.createVerticalTitledBorderPane(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cache_Update_Strategy")); - add(pane, BorderLayout.NORTH); - - JPanel row1 = GUICoreUtils.createFlowPane(new Component[]{ - this.selectAutoUpdate, - this.updateInterval, - new UILabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Minute_Update_Cache")), - this.shouldEvolve, - this.updateIntervalCheckTips - }, 0, 5); - pane.add(row1); - ActionLabel actionLabel = new ActionLabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cron_Help")); actionLabel.addActionListener(new ActionListener() { @Override @@ -128,6 +124,16 @@ public class ESDStrategyConfigPane extends BasicBeanPane { } } }); + } + + private void addCenterPanel() { + JPanel row1 = GUICoreUtils.createFlowPane(new Component[]{ + this.selectAutoUpdate, + this.updateInterval, + new UILabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Minute_Update_Cache")), + this.shouldEvolve, + this.updateIntervalCheckTips + }, 0, 5); JPanel row2 = GUICoreUtils.createFlowPane(new Component[]{ this.selectBySchema, @@ -135,7 +141,9 @@ public class ESDStrategyConfigPane extends BasicBeanPane { actionLabel, this.schemaTimeCheckTips }, 0, 5); - pane.add(row2); + + add(FineUIUtils.wrapComponentWithTitle(column(10, cell(row1), cell(row2)).getComponent(), + InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cache_Update_Strategy")), BorderLayout.NORTH); } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java index 41556dae83..4c2e6eb897 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java @@ -1,5 +1,8 @@ package com.fr.design.data.datapane.connect; +import com.fine.theme.icon.LazyIcon; +import com.fine.theme.light.ui.FineRoundBorder; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.base.BaseUtils; import com.fr.base.svg.IconUtils; import com.fr.data.core.db.TableProcedure; @@ -23,9 +26,11 @@ import javax.swing.BorderFactory; import javax.swing.DefaultComboBoxModel; import javax.swing.JPanel; import javax.swing.ToolTipManager; +import javax.swing.UIManager; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -34,6 +39,9 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 数据集编辑面板左边的部分 * @@ -62,7 +70,7 @@ public class ConnectionTableProcedurePane extends BasicPane { } private void init(SwitchableTableDataPane parent) { - this.setLayout(new BorderLayout(4, 4)); + this.setLayout(new BorderLayout(4, 10)); // 初始化数据连接下拉框 initConnectionComboBox(parent); // 初始化中间的面板 @@ -75,6 +83,7 @@ public class ConnectionTableProcedurePane extends BasicPane { private JPanel initCenterPane() { JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + centerPane.setLayout(new BorderLayout(0, 5)); // 搜索面板 centerPane.add(createSearchPane(), BorderLayout.NORTH); // 数据库表视图面板 @@ -144,8 +153,9 @@ public class ConnectionTableProcedurePane extends BasicPane { } }); UIScrollPane tableViewListPane = new UIScrollPane(tableViewList); - tableViewListPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); + tableViewListPane.setBorder(new UIRoundedBorder(UIManager.getColor("defaultBorderColor"), 1, UIConstants.ARC)); JPanel tableViewBorderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + tableViewBorderPane.setLayout(new BorderLayout(0, 5)); tableViewBorderPane.add(tableViewListPane, BorderLayout.CENTER); JPanel checkBoxgroupPane = createCheckBoxgroupPane(); if (checkBoxgroupPane != null) { @@ -160,32 +170,15 @@ public class ConnectionTableProcedurePane extends BasicPane { */ private JPanel createSearchPane() { JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); - JPanel searchPane = new JPanel(new BorderLayout(10, 0)); - searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.TOOLBAR_BORDER_COLOR)); -// searchPane.setBackground(Color.WHITE); searchField = new UITextField(); - searchField.setBorderPainted(false); searchField.setPlaceholder(Toolkit.i18nText("Fine-Design_Basic_Table_Search")); searchField.getDocument().addDocumentListener(searchListener); - searchField.addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - super.mouseEntered(e); - searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.CHECKBOX_HOVER_SELECTED)); - } - - @Override - public void mouseExited(MouseEvent e) { - super.mouseExited(e); - searchPane.setBorder(BorderFactory.createLineBorder(UIConstants.TOOLBAR_BORDER_COLOR)); - } - }); // 搜索图标 UILabel searchLabel = new UILabel(IconUtils.readIcon("/com/fr/design/images/data/search")); - searchLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5)); - searchPane.add(searchField, BorderLayout.CENTER); - searchPane.add(searchLabel, BorderLayout.EAST); - panel.add(searchPane, BorderLayout.CENTER); + searchLabel.setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 3)); + searchField.setBorder(null); + panel.add(row(cell(searchLabel), cell(searchField).weight(1)).with(it -> it.setBorder(new FineRoundBorder())).getComponent()); + panel.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); return panel; } @@ -199,6 +192,7 @@ public class ConnectionTableProcedurePane extends BasicPane { protected JPanel createCheckBoxgroupPane() { JPanel checkBoxgroupPane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(2); + checkBoxgroupPane.setLayout(new BorderLayout(20, 0)); JPanel first = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); tableCheckBox = new UICheckBox(); tableCheckBox.setSelected(true); @@ -214,19 +208,19 @@ public class ConnectionTableProcedurePane extends BasicPane { // 根据环境是否为中文设置不同的显示 if (GeneralContext.isChineseEnv()) { first.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_SQL_Table"), - BaseUtils.readIcon("/com/fr/design/images/data/tables.png"), UILabel.LEADING)); + new LazyIcon("tables"), UILabel.LEADING)); second.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_SQL_View"), - BaseUtils.readIcon("/com/fr/design/images/data/views.png"), UILabel.LEADING)); + new LazyIcon("views"), UILabel.LEADING)); } else { - UILabel ui1 = new UILabel(BaseUtils.readIcon("/com/fr/design/images/data/tables.png"), UILabel.LEADING); - UILabel ui2 = new UILabel(BaseUtils.readIcon("/com/fr/design/images/data/views.png"), UILabel.LEADING); + UILabel ui1 = new UILabel(new LazyIcon("tables"), UILabel.LEADING); + UILabel ui2 = new UILabel(new LazyIcon("views"), UILabel.LEADING); ui1.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_SQL_Table")); ui2.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_SQL_View")); first.add(ui1); second.add(ui2); } - checkBoxgroupPane.add(first); - checkBoxgroupPane.add(second); + checkBoxgroupPane.add(first, BorderLayout.WEST); + checkBoxgroupPane.add(second, BorderLayout.CENTER); return checkBoxgroupPane; } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ItemEditableComboBoxPanel.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ItemEditableComboBoxPanel.java index a430a13bd1..08c8e36660 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ItemEditableComboBoxPanel.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ItemEditableComboBoxPanel.java @@ -1,5 +1,6 @@ package com.fr.design.data.datapane.connect; +import com.fine.theme.icon.LazyIcon; import com.fr.base.BaseUtils; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.UIComboBox; @@ -7,7 +8,9 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.log.FineLoggerFactory; + import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Dimension; import java.util.Iterator; import java.util.concurrent.CancellationException; @@ -45,17 +48,21 @@ public abstract class ItemEditableComboBoxPanel extends JPanel { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); - Dimension buttonSize = new Dimension(26, 20); + Dimension buttonSize = new Dimension(24, 24); itemComboBox = new UIComboBox(); itemComboBox.setEnabled(true); this.add(itemComboBox, BorderLayout.CENTER); - refreshButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/refresh.png")); - JPanel jPanel = FRGUIPaneFactory.createNColumnGridInnerContainer_Pane(2, 4 ,4); + refreshButton = new UIButton(new LazyIcon("refresh")); + JPanel jPanel = FRGUIPaneFactory.createNColumnGridInnerContainer_Pane(2, 0 ,4); editButton = initEditButton(editButton, buttonSize); + editButton.setBorder(null); + editButton.setBackground(new Color(246, 248, 250, 255)); jPanel.add(editButton); jPanel.add(refreshButton); this.add(jPanel, BorderLayout.EAST); refreshButton.setPreferredSize(buttonSize); + refreshButton.setBorder(null); + refreshButton.setBackground(new Color(246, 248, 250, 255)); refreshButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { refreshItems(); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java index c4996d539e..ccf17f914c 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java @@ -1,5 +1,6 @@ package com.fr.design.data.datapane.preview.sql; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.base.Parameter; import com.fr.base.ParameterHelper; import com.fr.base.ParameterMapNameSpace; @@ -117,8 +118,7 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { } imagePanel.add(imageLabel); - topPanel.add(imagePanel, BorderLayout.WEST); - topPanel.add(messagePanel, BorderLayout.CENTER); + topPanel.add(messagePanel, BorderLayout.WEST); topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10)); //中间的SQL面板 @@ -141,6 +141,7 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { } scrollPane.setViewportView(checkArea); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + checkArea.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); centerPanel.add(scrollPane); //底部的按钮面板 diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 4a0d1f665e..fc502121d3 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -1,5 +1,6 @@ package com.fr.design.data.tabledata.tabledatapane; +import com.fine.theme.icon.LazyIcon; import com.fr.base.Parameter; import com.fr.base.ParameterHelper; import com.fr.data.core.db.TableProcedure; @@ -71,6 +72,7 @@ import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JToolBar; import javax.swing.SwingUtilities; +import javax.swing.UIManager; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import java.awt.BorderLayout; @@ -93,7 +95,7 @@ import java.util.List; */ public class DBTableDataPane extends AbstractTableDataPane implements SwitchableTableDataPane { - private static final int BOTTOM = 6; + private static final int BOTTOM = 9; private static final String PREVIEW_BUTTON = Toolkit.i18nText("Fine-Design_Basic_Preview"); private static final String REFRESH_BUTTON = Toolkit.i18nText("Fine-Design_Basic_Refresh"); private ConnectionTableProcedurePane connectionTableProcedurePane; @@ -162,7 +164,25 @@ public class DBTableDataPane extends AbstractTableDataPane implemen }; editorPane = new UITableEditorPane<>(model); + initConnectionTableProcedurePane(); + this.sqlTextPane.addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent e) { + barErrorTips.setVisible(false); + } + + + @Override + public void focusLost(FocusEvent e) { + if (DBTableDataPane.this.isPreviewOrRefreshButton(e)) { + DBTableDataPane.this.checkParameter(); + } + } + }); + } + + private void initConnectionTableProcedurePane() { this.connectionTableProcedurePane = new ConnectionTableProcedurePane(this) { @Override protected void filter(Connection connection, String conName, List nameList) { @@ -172,7 +192,6 @@ public class DBTableDataPane extends AbstractTableDataPane implemen }); } - @Override protected void addKeyMonitor() { this.searchField.addKeyListener(new KeyListener() { @@ -196,6 +215,10 @@ public class DBTableDataPane extends AbstractTableDataPane implemen }); } }; + + addConnectionTableProcedurePaneListener(); + } + private void addConnectionTableProcedurePaneListener() { this.connectionTableProcedurePane.addDoubleClickListener(new ConnectionTableProcedurePane.DoubleClickSelectedNodeOnTreeListener() { @Override public void actionPerformed(TableProcedure target) { @@ -210,35 +233,20 @@ public class DBTableDataPane extends AbstractTableDataPane implemen DBTableDataPane.this.sqlTextPane.requestFocus(); } }); - - this.sqlTextPane.addFocusListener(new FocusListener() { - @Override - public void focusGained(FocusEvent e) { - barErrorTips.setVisible(false); - } - - - @Override - public void focusLost(FocusEvent e) { - if (DBTableDataPane.this.isPreviewOrRefreshButton(e)) { - DBTableDataPane.this.checkParameter(); - } - } - }); } private void initMainSplitPane() { Box box = new Box(BoxLayout.Y_AXIS); - JPanel northPane = new JPanel(new BorderLayout(4, 4)); JToolBar editToolBar = createToolBar(); + editToolBar.setBorder(null); northPane.add(editToolBar, BorderLayout.CENTER); northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, BOTTOM, 0)); RTextScrollPane sqlTextScrollPane = new RTextScrollPane(this.sqlTextPane); sqlTextScrollPane.setLineNumbersEnabled(true); - sqlTextScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); + sqlTextScrollPane.setBorder(new UIRoundedBorder(UIManager.getColor("defaultBorderColor"), 1, UIConstants.ARC)); sqlTextScrollPane.setPreferredSize(new Dimension(680, 600)); JPanel paraMeanPane = new JPanel(new BorderLayout()); @@ -262,7 +270,6 @@ public class DBTableDataPane extends AbstractTableDataPane implemen this.connectionTableProcedurePane.setMaximumSize(new Dimension(500, 400)); JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, this.connectionTableProcedurePane, sqlSplitPane); - mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor())); mainSplitPane.setOneTouchExpandable(true); contentPane.add(mainSplitPane, BorderLayout.CENTER); } @@ -333,6 +340,7 @@ public class DBTableDataPane extends AbstractTableDataPane implemen this.barErrorTips.setVisible(false); esdSettingsBtn = new UIButton(Toolkit.i18nText("Fine-Design_ESD_Strategy_Config")); + esdSettingsBtn.setPreferredSize(new Dimension(72, 24)); esdSettingsBtn.addActionListener(new ActionListener() { @Override @@ -594,7 +602,7 @@ public class DBTableDataPane extends AbstractTableDataPane implemen public PreviewAction() { setName(PREVIEW_BUTTON); setMnemonic('P'); - setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_file/preview.png")); + setSmallIcon(new LazyIcon("preview")); } @@ -609,7 +617,7 @@ public class DBTableDataPane extends AbstractTableDataPane implemen public PreviewPerformedSQLAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview_Performed_Sql")); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_file/preview_sql.png")); + this.setSmallIcon(new LazyIcon("preview_sql")); } @Override @@ -623,7 +631,7 @@ public class DBTableDataPane extends AbstractTableDataPane implemen public EditPageQueryAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Layer_Page_Report_Page_Query")); this.setMnemonic('L'); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_file/text.png")); + this.setSmallIcon(new LazyIcon("text")); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index 1686867e3e..5a4f3fca6f 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -1,5 +1,6 @@ package com.fr.design.data.tabledata.tabledatapane; +import com.fine.theme.icon.LazyIcon; import com.fr.base.BaseUtils; import com.fr.base.StoreProcedureParameter; import com.fr.data.core.db.TableProcedure; @@ -42,6 +43,7 @@ import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.JToolBar; import javax.swing.SwingWorker; +import javax.swing.UIManager; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Dimension; @@ -89,13 +91,15 @@ public class ProcedureDataPane extends AbstractTableDataPane imp queryText = new UILabel(StringUtils.EMPTY); Box box = new Box(BoxLayout.Y_AXIS); JPanel northpane = new JPanel(new BorderLayout(4, 4)); - northpane.add(creatToolBar(), BorderLayout.CENTER); + JToolBar editToolBar = creatToolBar(); + editToolBar.setBorder(null); + northpane.add(editToolBar, BorderLayout.NORTH); northpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 6, 0)); storeProcedureContext = new SQLEditPane(SQLEditPane.UNREQUEST_DROPTARGET); storeProcedureContext.setEditable(false); UIScrollPane storeProcedureContextPane = new UIScrollPane(storeProcedureContext); - storeProcedureContextPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC)); + storeProcedureContextPane.setBorder(new UIRoundedBorder(UIManager.getColor("defaultBorderColor"), 1, UIConstants.ARC)); storeProcedureContextPane.setPreferredSize(new Dimension(680, 600)); JPanel namePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); @@ -122,11 +126,11 @@ public class ProcedureDataPane extends AbstractTableDataPane imp // 左边的Panel,上面是选择DatabaseConnection的ComboBox,下面DatabaseConnection对应的Table initconnectionTableProcedurePane(); this.setLayout(new BorderLayout(4, 4)); - connectionTableProcedurePane.setMinimumSize(new Dimension(155, 500)); - box.setMinimumSize(new Dimension(310, 400)); + this.connectionTableProcedurePane.setMinimumSize(new Dimension(230, 400)); + this.connectionTableProcedurePane.setMaximumSize(new Dimension(500, 400)); + box.setMinimumSize(new Dimension(300, 400)); // 使用SplitPane JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, connectionTableProcedurePane, sqlSplitPane); - mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor())); mainSplitPane.setOneTouchExpandable(true); this.add(mainSplitPane, BorderLayout.CENTER); } @@ -167,6 +171,7 @@ public class ProcedureDataPane extends AbstractTableDataPane imp isShareCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Is_Share_DBTableData")); maxPanel = new MaxMemRowCountPanel(); maxPanel.setBorder(null); + maxPanel.setBackground(null); UIToolbar toolbar = ToolBarDef.createJToolBar(); toolBarDef.updateToolBar(toolbar); toolbar.add(isShareCheckBox); @@ -376,7 +381,7 @@ public class ProcedureDataPane extends AbstractTableDataPane imp public PreviewAction(ProcedureDataPane procedureDataPane) { this.setName(PREVIEW_BUTTON); this.setMnemonic('P'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png")); + this.setSmallIcon(new LazyIcon("preview")); this.procedureDataPane = procedureDataPane; } @@ -391,7 +396,7 @@ public class ProcedureDataPane extends AbstractTableDataPane imp protected class RefreshAction extends UITableEditAction { public RefreshAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Refresh")); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/refresh.png")); + this.setSmallIcon(new LazyIcon("refresh")); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureParameterPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureParameterPane.java index e7b7e7026b..88f9b04239 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureParameterPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureParameterPane.java @@ -1,5 +1,6 @@ package com.fr.design.data.tabledata.tabledatapane; +import com.fine.theme.utils.FineUIUtils; import com.fr.base.BaseFormula; import com.fr.base.StoreProcedureParameter; import com.fr.data.impl.storeproc.StoreProcedureConstants; @@ -21,6 +22,11 @@ import java.awt.*; import java.util.Date; import java.util.HashMap; +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; + public class StoreProcedureParameterPane extends BasicPane { @@ -70,27 +76,25 @@ public class StoreProcedureParameterPane extends BasicPane { schemaCombo = new UIComboBox(); initUIComboBox(schemaCombo, schemaName); - JPanel namePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - namePane.add(new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name") + ":"), BorderLayout.WEST); nameField = new UITextField(10); - namePane.add(nameField, BorderLayout.CENTER); - namePane.add(new UILabel(" "), BorderLayout.EAST); - valuePane.add(new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_CellWrite_InsertRow_Default") + ":"), BorderLayout.WEST); - valuePane.add(valueEditPane, BorderLayout.CENTER); - valuePane.add(new UILabel(" "), BorderLayout.EAST); - Component[][] components = {{null}, - {namePane}, - {addPane("Fine-Design_Basic_Model", 1, schemaCombo)}, - {valuePane}, - {null} - }; - double p = TableLayout.PREFERRED; - double[] rowSize = {p, p, p, p, p, p}; - double[] columnSize = {p}; - JPanel centerPane = TableLayoutHelper.createGapTableLayoutPane( - components, rowSize, columnSize, 20, 10); - this.add(centerPane, BorderLayout.CENTER); - + + this.add(FineUIUtils.wrapComponentWithTitle(column( + 10, + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name"))).weight(0.07), + cell(nameField).weight(0.2), + flex(0.2) + ), + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Model"))).weight(0.07), + cell(schemaCombo).weight(0.2), + flex(0.2) + ), + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_CellWrite_InsertRow_Default"))).weight(0.07), + cell(valueEditPane).weight(0.2), + flex(0.2) + )).getComponent(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parameter"))); } private JPanel addPane(String s, int i, UIComboBox combo){ diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureTableModel.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureTableModel.java index 845010cd55..2870bbcc34 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureTableModel.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/StoreProcedureTableModel.java @@ -35,7 +35,6 @@ public class StoreProcedureTableModel extends UITableModelAdapter extends BasicPane { public UITableEditorPane(UITableModelAdapter model) { this.tableModel = model; this.initComponent(model.createAction()); + this.editTable.getTableHeader().setDefaultRenderer(new TableHeaderRenderer()); } public UITableEditorPane(UITableModelAdapter model, String s) { leftLabelName = s; this.tableModel = model; this.initComponent(model.createAction()); + this.editTable.getTableHeader().setDefaultRenderer(new TableHeaderRenderer()); } protected void initComponent(UITableEditAction[] action) { @@ -169,4 +175,17 @@ public class UITableEditorPane extends BasicPane { editTable.getTableHeader().setResizingAllowed(resizingAllowed); } + + public static class TableHeaderRenderer extends DefaultTableCellRenderer { + public TableHeaderRenderer() { + setHorizontalAlignment(SwingConstants.LEFT); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + setBorder(UIManager.getBorder("TableHeader.cellBorder")); + return this; + } + } } diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/checkboxtree/CheckBoxTreeCellRenderer.java b/designer-base/src/main/java/com/fr/design/gui/itree/checkboxtree/CheckBoxTreeCellRenderer.java index f205cca92f..346b2c0419 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/checkboxtree/CheckBoxTreeCellRenderer.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/checkboxtree/CheckBoxTreeCellRenderer.java @@ -6,12 +6,14 @@ package com.fr.design.gui.itree.checkboxtree; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import javax.swing.BorderFactory; import javax.swing.JComponent; +import javax.swing.JPanel; import javax.swing.JTree; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; @@ -54,12 +56,15 @@ public class CheckBoxTreeCellRenderer extends NullPanel implements TreeCellRende public CheckBoxTreeCellRenderer(TreeCellRenderer renderer) { if (noFocusBorder == null) { - noFocusBorder = new EmptyBorder(1, 1, 1, 1); + noFocusBorder = new ScaledEmptyBorder(1, 1, 1, 10); } _checkBox.setOpaque(false); setBorder(noFocusBorder); setLayout(FRGUIPaneFactory.createBorderLayout()); - add(_checkBox, BorderLayout.BEFORE_LINE_BEGINS); + add(_checkBox, BorderLayout.WEST); + JPanel gapPanel = new JPanel(); + gapPanel.setPreferredSize(new Dimension(4, 20)); + add(gapPanel, BorderLayout.CENTER); _actualTreeRenderer = renderer; } @@ -76,19 +81,7 @@ public class CheckBoxTreeCellRenderer extends NullPanel implements TreeCellRende setComponentOrientation(tree.getComponentOrientation()); TreePath path = tree.getPathForRow(row); - if (path != null && tree instanceof CheckBoxTree) { - CheckBoxTreeSelectionModel selectionModel = ((CheckBoxTree) tree).getCheckBoxTreeSelectionModel(); - if (selectionModel != null) { - _checkBox.setEnabled(((CheckBoxTree) tree).isCheckBoxEnabled() && ((CheckBoxTree) tree).isCheckBoxEnabled(path)); - if (selectionModel.isPathSelected(path, selectionModel.isDigIn())) { - _checkBox.setState(TristateCheckBox.SELECTED); - } else if (selectionModel.isDigIn() && selectionModel.isPartiallySelected(path)) { - _checkBox.setState(TristateCheckBox.DO_NOT_CARE); - } else { - _checkBox.setState(TristateCheckBox.NOT_SELECTED); - } - } - } + handleCheckBox(tree, path); if (_actualTreeRenderer != null) { JComponent treeCellRendererComponent = (JComponent) _actualTreeRenderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); @@ -103,12 +96,37 @@ public class CheckBoxTreeCellRenderer extends NullPanel implements TreeCellRende remove((Component) this._actualTreeRenderer); - add(treeCellRendererComponent); + add(treeCellRendererComponent, BorderLayout.EAST); } return this; } + private void handleCheckBox(JTree tree, TreePath path) { + if (path == null || !(tree instanceof CheckBoxTree)) { + return; + } + + CheckBoxTree checkBoxTree = (CheckBoxTree) tree; + CheckBoxTreeSelectionModel selectionModel = checkBoxTree.getCheckBoxTreeSelectionModel(); + if (selectionModel == null) { + return; + } + + setCheckBoxState(path, selectionModel, checkBoxTree); + } + + private void setCheckBoxState(TreePath path, CheckBoxTreeSelectionModel selectionModel, CheckBoxTree checkBoxTree) { + _checkBox.setEnabled(checkBoxTree.isCheckBoxEnabled() && checkBoxTree.isCheckBoxEnabled(path)); + if (selectionModel.isPathSelected(path, selectionModel.isDigIn())) { + _checkBox.setState(TristateCheckBox.SELECTED); + } else if (selectionModel.isDigIn() && selectionModel.isPartiallySelected(path)) { + _checkBox.setState(TristateCheckBox.DO_NOT_CARE); + } else { + _checkBox.setState(TristateCheckBox.NOT_SELECTED); + } + } + public String getToolTipText(MouseEvent event) { if (_actualTreeRenderer instanceof JComponent) { Point p = event.getPoint(); diff --git a/designer-base/src/main/java/com/fr/design/gui/style/FollowingThemePane.java b/designer-base/src/main/java/com/fr/design/gui/style/FollowingThemePane.java index bf06aa2fd7..6b8e0e65b4 100644 --- a/designer-base/src/main/java/com/fr/design/gui/style/FollowingThemePane.java +++ b/designer-base/src/main/java/com/fr/design/gui/style/FollowingThemePane.java @@ -75,7 +75,6 @@ public class FollowingThemePane extends BasicPane implements UIObserver { JPanel followingThemePane = TableLayoutHelper.createGapTableLayoutPane( new Component[][]{new Component[] { followingThemeLabel, FRGUIPaneFactory.createBorderLayoutNorthPaneWithComponent(followingThemeButtonGroup)}}, new double[] { p }, new double[] { SETTING_LABEL_WIDTH, f }, 10, 0); - followingThemePane.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); followingThemePane.setVisible(false); add(followingThemePane, BorderLayout.NORTH); diff --git a/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java b/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java index ce8a9012a9..fabecda3e0 100644 --- a/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java +++ b/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java @@ -1,5 +1,7 @@ package com.fr.design.roleAuthority; +import com.fine.theme.icon.LazyIcon; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.BaseUtils; import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.UpdateAction; @@ -9,6 +11,7 @@ import com.fr.design.data.tabledata.Prepare4DataSourceChange; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.ibutton.UIHeadGroup; import com.fr.design.gui.icontainer.UIScrollPane; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itoolbar.UIToolbar; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; @@ -40,6 +43,10 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Enumeration; +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; + /** * 设计器左下角面板,用于在权限编辑时存放角色 * Author : daisy @@ -80,17 +87,20 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo this.add(iniToolBarPane(), BorderLayout.NORTH); refreshAction.setEnabled(true); UIScrollPane scrollPane = new UIScrollPane(roleTree); - scrollPane.setBorder(BorderFactory.createEmptyBorder(0, 24, 0, 0)); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); initbuttonGroup(); JPanel jPanel = new JPanel(new BorderLayout(4, 4)); - JPanel buttonPane = new JPanel(new GridLayout()); - buttonPane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LINE_COLOR)); - buttonPane.add(buttonGroup, BorderLayout.CENTER); - jPanel.add(buttonPane, BorderLayout.NORTH); - jPanel.add(scrollPane, BorderLayout.CENTER); + buttonGroup.setBorder(null); + buttonGroup.setOpaque(false); + jPanel.setOpaque(true); + jPanel.add(column( + 4, + row(2, cell(new UILabel(new LazyIcon("digitalPlatform"))), cell(buttonGroup)), + cell(scrollPane) + ).getComponent()); this.add(jPanel, BorderLayout.CENTER); + jPanel.setBorder(new ScaledEmptyBorder(0, 4, 4, 4)); registerDSChangeListener(); } @@ -197,7 +207,6 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo } } }; - buttonGroup.setBorder(BorderFactory.createMatteBorder(1, LEFT_GAP, 0, 0, UIConstants.LINE_COLOR)); } /** @@ -253,7 +262,7 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo public RefreshAction() { this.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Refresh")); - this.setSmallIcon("/com/fr/design/images/buttonicon/refresh"); + this.setSmallIcon(new LazyIcon("refresh")); } @Override diff --git a/designer-base/src/main/java/com/fr/design/style/BorderPane.java b/designer-base/src/main/java/com/fr/design/style/BorderPane.java index c9dff2c3d2..ee4c130f59 100644 --- a/designer-base/src/main/java/com/fr/design/style/BorderPane.java +++ b/designer-base/src/main/java/com/fr/design/style/BorderPane.java @@ -3,25 +3,24 @@ */ package com.fr.design.style; +import com.fine.theme.utils.FineUIUtils; import com.fr.base.BaseUtils; import com.fr.base.CellBorderStyle; import com.fr.base.GraphHelper; import com.fr.base.Style; -import com.fr.design.border.UITitledBorder; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.VerticalFlowLayout; -import com.fr.design.style.color.ColorSelectBox; import com.fr.design.style.color.NewColorSelectBox; -import com.fr.design.utils.gui.GUICoreUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.Constants; import com.fr.stable.CoreConstants; +import com.fr.stable.StringUtils; import javax.swing.BorderFactory; +import javax.swing.ButtonGroup; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JPanel; @@ -29,10 +28,9 @@ import javax.swing.JToggleButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.EventListenerList; -import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Component; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; @@ -40,6 +38,11 @@ import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * CellBorder Pane. */ @@ -73,7 +76,6 @@ public class BorderPane extends BasicPane { private LineComboBox currentLineCombo; private NewColorSelectBox currentLineColorPane; - private UIButton insidebutton; public BorderPane() { @@ -81,89 +83,57 @@ public class BorderPane extends BasicPane { } protected void initComponents() { - borderComponent = new BorderComponent(); - topToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/top.png"), BorderPane.TOP_BORDER); - horizontalToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/horizontal.png"), BorderPane.HORIZONTAL_BORDER); - bottomToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/bottom.png"), BorderPane.BOTTOM_BORDER); + initBasicComponents(); + JPanel borderAllControlPane = initButtonPanel(); + JPanel borderLeftPane = column(flex(), cell(topToggleButton), cell(horizontalToggleButton), cell(bottomToggleButton), flex()).getComponent(); + JPanel borderBottomPane = row(flex(), cell(leftToggleButton), cell(verticalToggleButton), cell(rightToggleButton), flex()).getComponent(); + this.currentLineColorPane.setSelectObject(Color.BLUE); + Component northPane1 = initNorthPanel(); + Component centerPane1 = FineUIUtils.wrapComponentWithTitle(row(5, cell(borderLeftPane), + column(5, row(flex(), cell(borderAllControlPane),flex()), cell(borderComponent).with(it -> it.setPreferredSize(new Dimension(600, 300))), cell(borderBottomPane)) + ).getComponent(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); + this.add(column(10, cell(northPane1), cell(centerPane1)).getComponent()); + } - leftToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/left.png"), BorderPane.LEFT_BORDER); - verticalToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/vertical.png"), BorderPane.VERTICAL_BORDER); - rightToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/right.png"), BorderPane.RIGHT_BORDER); + private void initBasicComponents() { + borderComponent = new BorderComponent(); + topToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/top.png"), BorderPane.TOP_BORDER, false); + horizontalToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/horizontal.png"), BorderPane.HORIZONTAL_BORDER, false); + bottomToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/bottom.png"), BorderPane.BOTTOM_BORDER, false); + leftToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/left.png"), BorderPane.LEFT_BORDER, true); + verticalToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/vertical.png"), BorderPane.VERTICAL_BORDER, true); + rightToggleButton = new ToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/right.png"), BorderPane.RIGHT_BORDER, true); this.currentLineCombo = new LineComboBox(CoreConstants.UNDERLINE_STYLE_ARRAY); this.currentLineColorPane = new NewColorSelectBox(100); - this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); this.setLayout(FRGUIPaneFactory.createBorderLayout()); - - JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - - centerPane.setBorder(UITitledBorder.createBorderWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))); - JPanel borderAllControlPane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); - centerPane.add(borderAllControlPane, BorderLayout.NORTH); - borderAllControlPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 4, 0)); - borderAllControlPane.add(new UILabel(" ")); - // Button reseting borders - borderAllControlPane.add(createVerButtonPane(NO_BORDERS, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_No"))); - // Button setting all borders to active with - // current color and current style excepting inside borders - borderAllControlPane.add(createVerButtonPane(EXTERNAL_BORDERS, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_External"))); - - borderAllControlPane.add(createVerButtonPane(INSIDE_BORDERS, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Inner"))); - - // Control - JPanel borderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - centerPane.add(borderPane, BorderLayout.CENTER); - borderPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 4)); - borderComponent.addBorderChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { fireStateChanged(); } }); + } - borderPane.add(borderComponent, BorderLayout.CENTER); - - JPanel borderLeftPane = new JPanel(); - JPanel borderCornerPane = new JPanel(); - JPanel borderBottomPane = new JPanel(); - - borderPane.add(borderLeftPane, BorderLayout.WEST); - JPanel tmpBorderBottomPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - borderPane.add(tmpBorderBottomPane, BorderLayout.SOUTH); - tmpBorderBottomPane.add(borderBottomPane, BorderLayout.CENTER); - tmpBorderBottomPane.add(borderCornerPane, BorderLayout.WEST); - - borderLeftPane.setLayout(new VerticalFlowLayout(VerticalFlowLayout.CENTER, 4, 16)); - - borderLeftPane.add(topToggleButton); - borderLeftPane.add(horizontalToggleButton); - borderLeftPane.add(bottomToggleButton); - - borderBottomPane.setLayout(new /**/FlowLayout(FlowLayout.CENTER, 42, 5)); - borderBottomPane.add(leftToggleButton); - borderBottomPane.add(verticalToggleButton); - borderBottomPane.add(rightToggleButton); - - borderCornerPane.setPreferredSize(new Dimension(borderLeftPane.getPreferredSize().width, borderBottomPane.getPreferredSize().height)); - - JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - - northPane.setBorder(UITitledBorder.createBorderWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Line"))); - JPanel rightTopPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - northPane.add(rightTopPane, BorderLayout.NORTH); - JPanel first = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - first.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style") + ":")); - first.add(this.currentLineCombo); - rightTopPane.add(first, BorderLayout.NORTH); - - JPanel second = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - second.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Color") + ":")); + private JPanel initButtonPanel() { + UIButton button1 = createVerButtonPane(NO_BORDERS, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_No")); + UIButton button2 = createVerButtonPane(EXTERNAL_BORDERS, ""); + UIButton button3 = createVerButtonPane(INSIDE_BORDERS, ""); + ButtonGroup buttonGroup = new ButtonGroup(); + buttonGroup.add(button1); + buttonGroup.add(button2); + buttonGroup.add(button3); + return row(cell(button1), cell(button2), cell(button3)).getComponent(); + } - second.add(this.currentLineColorPane); - rightTopPane.add(second, BorderLayout.CENTER); - this.currentLineColorPane.setSelectObject(Color.BLACK); - this.add(northPane, BorderLayout.NORTH); - this.add(centerPane, BorderLayout.CENTER); + private Component initNorthPanel() { + return FineUIUtils.wrapComponentWithTitle(column( + 10, row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style"))).weight(0.1), + cell(this.currentLineCombo).weight(0.25), + flex(0.5)), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Color"))).weight(0.1), + cell(this.currentLineColorPane).weight(0.25), + flex(0.5)) + ).getComponent(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Line")); } public void addChangeListener(ChangeListener changeListener) { @@ -186,15 +156,16 @@ public class BorderPane extends BasicPane { } } - private JPanel createVerButtonPane(int display, String text) { + private UIButton createVerButtonPane(int display, String text) { JPanel verPane = new JPanel(); - verPane.setLayout(new VerticalFlowLayout(VerticalFlowLayout.CENTER, 2, 2)); BorderButton button = new BorderButton(display); + if (StringUtils.isNotEmpty(text)) { + button.setText(text); + } verPane.add(button); - verPane.add(new UILabel(text)); insidebutton = button; - return verPane; + return button; } private void refreshAllToggleButtons() { @@ -206,14 +177,6 @@ public class BorderPane extends BasicPane { rightToggleButton.setSelected(this.cellBorderStyle.getRightStyle() != Constants.LINE_NONE); } - public CellBorderStyle getCellBorderStyle() { - return this.cellBorderStyle; - } - - public void setCellBorderStyle(CellBorderStyle cellBorderStyle) { - this.cellBorderStyle = cellBorderStyle; - } - @Override protected String title4PopupWindow() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Border"); @@ -282,11 +245,18 @@ public class BorderPane extends BasicPane { private class ToggleButton extends JToggleButton implements ActionListener { private int borderType = 0; - public ToggleButton(Icon icon, int borderType) { + /** + * 根据水平 或者 垂直布局设置控件大小 + */ + public ToggleButton(Icon icon, int borderType, boolean horizontal) { super(icon); this.borderType = borderType; - this.setPreferredSize(new Dimension(32, 32)); + if (horizontal) { + this.setPreferredSize(new Dimension(40, 24)); + } else { + this.setPreferredSize(new Dimension(24, 40)); + } this.addActionListener(this); } @@ -346,7 +316,7 @@ public class BorderPane extends BasicPane { this.setIcon(BaseUtils.readIcon("com/fr/design/images/m_format/in.png")); } this.addActionListener(this); - setPreferredSize(new Dimension(32, 32)); + setPreferredSize(new Dimension(36, 24)); setFocusPainted(false); } diff --git a/designer-base/src/main/java/com/fr/design/style/FRFontPane.java b/designer-base/src/main/java/com/fr/design/style/FRFontPane.java index 04b285fd56..8e47e3087f 100644 --- a/designer-base/src/main/java/com/fr/design/style/FRFontPane.java +++ b/designer-base/src/main/java/com/fr/design/style/FRFontPane.java @@ -3,34 +3,31 @@ */ package com.fr.design.style; +import com.fine.theme.utils.FineUIScale; import com.fr.base.FRContext; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.LineComboBox; +import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.style.color.ColorSelectBox; -import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.design.utils.DesignUtils; import com.fr.general.DefaultValues; import com.fr.general.FRFont; import com.fr.stable.CoreConstants; import javax.swing.BorderFactory; import javax.swing.Box; -import javax.swing.JComponent; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; import javax.swing.event.EventListenerList; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import java.awt.BorderLayout; import java.awt.Component; +import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; @@ -38,17 +35,24 @@ import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.fix; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * Pane to edit Font. */ public class FRFontPane extends BasicPane { - private FontFamilyPane familyPane; private FontSizeStylePane fontSizeStylePane; //foreground. private ColorSelectBox foregroundColorPane; + private UIComboBox fontNameComboBox; + //underline private LineComboBox underlineCombo; @@ -76,88 +80,37 @@ public class FRFontPane extends BasicPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); - - // 纵向布局 放置list 和 下划线 颜色 - JPanel listVPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(listVPane, BorderLayout.NORTH); - - JPanel listHPane =FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(2); - listVPane.add(listHPane); // 名字 - familyPane = new FontFamilyPane(); - listHPane.add(familyPane); + fontNameComboBox = new UIComboBox(DesignUtils.getAvailableFontFamilyNames4Report()); + this.fontNameComboBox.addActionListener(actionListener); // 字形和大小 fontSizeStylePane = new FontSizeStylePane(); - listHPane.add(fontSizeStylePane); - - fontSizeStylePane.getStyleList().addListSelectionListener(listSelectionListener); - - //Richie:直接输入FRFont的size. - fontSizeStylePane.getSizeField().getDocument().addDocumentListener(documentListener); - fontSizeStylePane.getSizeField().getDocument().addDocumentListener(new DocumentListener() { - public void changedUpdate(DocumentEvent e) {// 这是更改操作的处理 - updatePreviewLabel(); - } - - public void insertUpdate(DocumentEvent e) {// 这是插入操作的处理 - updatePreviewLabel(); - } - - public void removeUpdate(DocumentEvent e) {// 这是删除操作的处理 - updatePreviewLabel(); - } - }); - - fontSizeStylePane.getSizeList().addListSelectionListener(listSelectionListener); // 下划线 和 颜色 - JPanel listVBottomPane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(2); - listVPane.add(listVBottomPane); - - - // underline pane - JPanel underlinePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - listVBottomPane.add(underlinePane); - underlinePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FRFont_Underline"), null)); - this.underlineCombo = new LineComboBox(CoreConstants.UNDERLINE_STYLE_ARRAY); this.underlineCombo.addActionListener(actionListener); - underlinePane.add(this.underlineCombo, BorderLayout.CENTER); - - // foreground - JPanel foregroundPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - listVBottomPane.add(foregroundPane); - - foregroundPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Font_Foreground"),null)); foregroundColorPane = new ColorSelectBox(140); foregroundColorPane.addSelectChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { fireStateChanged(); } }); - foregroundPane.add(foregroundColorPane, BorderLayout.WEST); - // center pane - JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(centerPane, BorderLayout.CENTER); - centerPane.setLayout(FRGUIPaneFactory.createM_BorderLayout()); - - // other reportFont dialog - JPanel otherFontPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - centerPane.add(otherFontPane, BorderLayout.WEST); -// otherFontPane.setLayout(FRGUIPaneFactory.createBorderLayout()); + initCheckbox(); + // preview pane. + preview = new FRFontPreviewArea(); + preview.setPreferredSize(FineUIScale.scale(new Dimension(640, 240))); - // effects pane - JPanel effectsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - otherFontPane.add(effectsPane, BorderLayout.CENTER); -// effectsPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - effectsPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Font_Effects"),null)); + //peteter:这里主动从Context, 获得默认的FRFont的值. + DefaultValues defaultValues = FRContext.getDefaultValues(); + populate(defaultValues.getFRFont()); - JPanel effectsPane2 = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - effectsPane.add(effectsPane2, BorderLayout.NORTH); + addCenterPanel(); + } + private void initCheckbox() { isStrikethroughCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Font_Strikethrough") + " "); isStrikethroughCheckBox.addChangeListener(changeListener); isStrikethroughCheckBox.setMnemonic('K'); @@ -170,23 +123,6 @@ public class FRFontPane extends BasicPane { isSubscriptCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Font_Subscript")); isSubscriptCheckBox.addChangeListener(changeListener); isSubscriptCheckBox.setMnemonic('B'); - - effectsPane2.add(this.getLeftJustPane(isStrikethroughCheckBox)); - effectsPane2.add(this.getLeftJustPane(isShadowCheckBox)); - effectsPane2.add(this.getLeftJustPane(isSuperscriptCheckBox)); - effectsPane2.add(this.getLeftJustPane(isSubscriptCheckBox)); - - // right pane - JPanel rightPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - centerPane.add(rightPane, BorderLayout.CENTER); - -// rightPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - - // preview pane. - preview = new FRFontPreviewArea(); - preview.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))); - rightPane.add(preview, BorderLayout.CENTER); - // Cannot select superscript and subscript in the same time. this.isSuperscriptCheckBox.addChangeListener(changeListener); this.isSuperscriptCheckBox.addChangeListener(new ChangeListener() { @@ -204,10 +140,34 @@ public class FRFontPane extends BasicPane { } } }); + } - //peteter:这里主动从Context, 获得默认的FRFont的值. - DefaultValues defaultValues = FRContext.getDefaultValues(); - populate(defaultValues.getFRFont()); + private void addCenterPanel() { + add(column(10, + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FRFont_Family"))).weight(0.1), + cell(fontNameComboBox).weight(0.2), + flex(0.4) + ), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Font_Size"))).weight(0.1), + cell(fontSizeStylePane.fontComboBox).weight(0.25), + fix(5), + cell(fontSizeStylePane.fontSizeComboBox).weight(0.2), + flex(0.15) + ), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FRFont_Underline"))).weight(0.1), + cell(underlineCombo).weight(0.2), + flex(0.4) + ), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Font_Foreground"))).weight(0.1), + cell(foregroundColorPane).weight(0.2), + flex(0.4) + ), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Font_Effects"))).weight(0.1), + row(cell(this.isStrikethroughCheckBox), fix(5), cell(this.isShadowCheckBox), fix(5), + cell(this.isSuperscriptCheckBox), fix(5), cell(this.isSubscriptCheckBox), flex()).weight(0.6) + ), + column(5, cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))), cell(preview)) + ).getComponent()); } public void addChangeListener(ChangeListener changeListener) { @@ -242,37 +202,6 @@ public class FRFontPane extends BasicPane { } }; - ListSelectionListener listSelectionListener = new ListSelectionListener() { - public void valueChanged(ListSelectionEvent e) { - fireStateChanged(); - } - }; - - DocumentListener documentListener = new DocumentListener() { - public void changedUpdate(DocumentEvent e) { - fireStateChanged(); - } - - public void insertUpdate(DocumentEvent e) { - fireStateChanged(); - } - - public void removeUpdate(DocumentEvent e) { - fireStateChanged(); - } - }; - - //use the method to make all checkbox donot margin == 0. - private JPanel getLeftJustPane(JComponent comp) { - JPanel leftJustPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); -// leftJustPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - leftJustPane.add(comp, BorderLayout.CENTER); - - leftJustPane.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); - - return leftJustPane; - } - @Override protected String title4PopupWindow() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Sytle_FRFont"); @@ -282,9 +211,24 @@ public class FRFontPane extends BasicPane { * Use font to populate pane. */ public void populate(FRFont frFont) { - familyPane.populate(frFont); - fontSizeStylePane.populate(frFont); + this.fontNameComboBox.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + updatePreviewLabel(); + } + }); + + this.fontSizeStylePane.fontComboBox.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + updatePreviewLabel(); + } + }); + + this.fontSizeStylePane.fontSizeComboBox.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + updatePreviewLabel(); + } + }); //foreground. this.foregroundColorPane.setSelectObject(frFont.getForeground()); @@ -297,12 +241,6 @@ public class FRFontPane extends BasicPane { this.isSuperscriptCheckBox.setSelected(frFont.isSuperscript()); this.isSubscriptCheckBox.setSelected(frFont.isSubscript()); - //添加ListHandler. - ListHandler listHandler = new ListHandler(); - - familyPane.addListSelectionListener(listHandler); - fontSizeStylePane.getStyleList().addListSelectionListener(listHandler); - fontSizeStylePane.getSizeList().addListSelectionListener(listHandler); //actionlistner ActionListener updatePreviewActionListener = new ActionListener() { @@ -336,13 +274,13 @@ public class FRFontPane extends BasicPane { * Update pane to get new font. */ public FRFont update() { - double fs = fontSizeStylePane.getSizeField().getValue(); + double fs = (double)((int)fontSizeStylePane.fontSizeComboBox.getSelectedItem()); if (!(fs + "").endsWith(".5")) { fs = (int)fs; } - return FRFont.getInstance(this.familyPane.getText(), - this.fontSizeStylePane.getStyleList().getSelectedIndex(), - (float)fs, + return FRFont.getInstance((String) this.fontNameComboBox.getSelectedItem(), + this.fontSizeStylePane.fontComboBox.getSelectedIndex(), + (float)((int)fontSizeStylePane.fontSizeComboBox.getSelectedItem()), this.foregroundColorPane.getSelectObject(), this.underlineCombo.getSelectedLineStyle(), @@ -393,10 +331,4 @@ public class FRFontPane extends BasicPane { private void updatePreviewLabel() { preview.setFontObject(this.update()); } - - class ListHandler implements ListSelectionListener { - public void valueChanged(ListSelectionEvent evt) { - updatePreviewLabel(); - } - } } diff --git a/designer-base/src/main/java/com/fr/design/style/FontFamilyPane.java b/designer-base/src/main/java/com/fr/design/style/FontFamilyPane.java index ba496ae138..7213c819cd 100644 --- a/designer-base/src/main/java/com/fr/design/style/FontFamilyPane.java +++ b/designer-base/src/main/java/com/fr/design/style/FontFamilyPane.java @@ -1,6 +1,8 @@ package com.fr.design.style; import com.fr.base.Utils; +import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.utils.DesignUtils; @@ -13,32 +15,35 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.BorderLayout; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + public class FontFamilyPane extends JPanel { private UITextField familyField; private JList familyList; + private UIComboBox familyComBox; + public FontFamilyPane() { this.init(); } private void init() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setLayout(new BorderLayout()); // 名字 familyField = new UITextField(); familyField.setEditable(false); familyList = new JList(DesignUtils.getAvailableFontFamilyNames4Report()); familyList.setVisibleRowCount(4); - - familyList.addListSelectionListener(listener); - - JPanel familyPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); -// familyPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - familyPane.add(FRFontPane.createTextFieldListPane("", familyField, familyList), BorderLayout.CENTER); - familyPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FRFont_Family"),null)); + familyComBox = new UIComboBox(DesignUtils.getAvailableFontFamilyNames4Report()); - this.add(familyPane); + familyList.addListSelectionListener(listener); + this.add(row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FRFont_Family"))).weight(0.1), + cell(familyComBox).weight(0.4) + ).getComponent()); } ListSelectionListener listener = new ListSelectionListener() { diff --git a/designer-base/src/main/java/com/fr/design/style/FontSizeStylePane.java b/designer-base/src/main/java/com/fr/design/style/FontSizeStylePane.java index 2fa5acf578..924c1129a1 100644 --- a/designer-base/src/main/java/com/fr/design/style/FontSizeStylePane.java +++ b/designer-base/src/main/java/com/fr/design/style/FontSizeStylePane.java @@ -7,6 +7,8 @@ import javax.swing.JPanel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UINumberField; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; @@ -14,25 +16,22 @@ import com.fr.general.FRFont; import com.fr.design.utils.gui.GUICoreUtils; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + public class FontSizeStylePane extends JPanel { - private UINumberField sizeField; - private JList sizeList; - private UITextField styleField; - private JList styleList; - + + public UIComboBox fontComboBox; + public UIComboBox fontSizeComboBox; + public FontSizeStylePane() { this.init(); } private void init() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - - JPanel fontVSizPane = FRGUIPaneFactory.createX_AXISBoxInnerContainer_S_Pane(); - this.add(fontVSizPane); - -// fontVSizPane.setLayout(new BoxLayout(fontVSizPane, BoxLayout.X_AXIS)); - fontVSizPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Font_Size"), null)); String[] styles = { com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font_Plain"), @@ -40,67 +39,15 @@ public class FontSizeStylePane extends JPanel { com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font_Italic"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font_Bold_Italic")}; - styleField = new UITextField(); - styleField.setEditable(false); - - styleList = new JList(styles); - styleList.setVisibleRowCount(4); - - JPanel stylePanel = FRFontPane.createTextFieldListPane("", styleField, styleList); - fontVSizPane.add(stylePanel); - - fontVSizPane.add(Box.createHorizontalStrut(6)); + fontComboBox = new UIComboBox(styles); + fontSizeComboBox = new UIComboBox(FRFontPane.Font_Sizes); - JPanel sizePanel = FRFontPane.createTextFieldListPane("", sizeField = new UINumberField(), sizeList = new JList(FRFontPane.Font_Sizes)); - sizeField.setMaxDecimalLength(1); - - sizeField.setEditable(false); - - sizeList.setVisibleRowCount(4); - - fontVSizPane.add(sizePanel); - - styleField.setText((String) styleList.getSelectedValue()); - - sizeList.addListSelectionListener(listener); - styleList.addListSelectionListener(listener); - + this.add(row( + 10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Font_Size"))).weight(0.1), + cell(fontComboBox).weight(0.2), + cell(fontSizeComboBox).weight(0.2), + flex(0.2) + ).getComponent()); } - - ListSelectionListener listener = new ListSelectionListener() { - public void valueChanged(ListSelectionEvent evt) { - Object source = evt.getSource(); - if (source == getSizeList()) { - Integer size = (Integer) getSizeList().getSelectedValue(); - if (size != null) { - getSizeField().setValue(size.intValue()); - } - } else if (source == getStyleList()) { - String style = (String) getStyleList().getSelectedValue(); - if (style != null) getStyleField().setText(style); - } - } - }; - - public UINumberField getSizeField() { - return sizeField; - } - - public JList getStyleList() { - return styleList; - } - - public JList getSizeList() { - return sizeList; - } - - public UITextField getStyleField() { - return styleField; - } - - public void populate(FRFont frFont) { - styleList.setSelectedIndex(frFont.getStyle()); - sizeList.setSelectedValue(new Integer(frFont.getSize()), true); - sizeField.setValue(frFont.getSize2D()); - } } diff --git a/designer-base/src/main/java/com/fr/design/style/FormatPane.java b/designer-base/src/main/java/com/fr/design/style/FormatPane.java index f1d7a086bd..66316d83b0 100644 --- a/designer-base/src/main/java/com/fr/design/style/FormatPane.java +++ b/designer-base/src/main/java/com/fr/design/style/FormatPane.java @@ -3,6 +3,7 @@ */ package com.fr.design.style; +import com.fine.theme.utils.FineUIUtils; import com.fr.base.FRContext; import com.fr.base.TextFormat; import com.fr.data.core.FormatField; @@ -40,6 +41,10 @@ import java.text.Format; import java.text.SimpleDateFormat; import java.util.Date; +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; + /** * 属性界面中的格式面板 */ @@ -81,43 +86,17 @@ public class FormatPane extends BasicPane { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); //sample pane - JPanel samplePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(samplePane, BorderLayout.NORTH); - samplePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_StyleFormat_Sample"), null)); - samplePane.setLayout(FRGUIPaneFactory.createBorderLayout()); sampleLabel = new UILabel(FormatField.getInstance().getFormatValue()); - samplePane.add(sampleLabel, BorderLayout.CENTER); sampleLabel.setBorder(BorderFactory.createEmptyBorder(2, 4, 4, 4)); sampleLabel.setHorizontalAlignment(SwingConstants.CENTER); sampleLabel.setFont(FRContext.getDefaultValues().getFRFont()); - //left control pane - JPanel leftControlPane =FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - this.add(leftControlPane, BorderLayout.WEST); - leftControlPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Format_Category"), null)); initRadioButton(); - ButtonGroup categoryButtonGroup = new ButtonGroup(); - categoryButtonGroup.add(nullRadioButton); - categoryButtonGroup.add(numberRadioButton); - categoryButtonGroup.add(currencyRadioButton); - categoryButtonGroup.add(percentRadioButton); - categoryButtonGroup.add(thousandthsRadioButton); - categoryButtonGroup.add(scientificRadioButton); - categoryButtonGroup.add(dateRadioButton); - categoryButtonGroup.add(timeRadioButton); - categoryButtonGroup.add(textRadioButton); + initRadioButtonGroup(); + //left control pane + JPanel leftControlPane = initLeftControlPane(); - leftControlPane.add(this.createRadioCenterPane(nullRadioButton)); - leftControlPane.add(this.createRadioCenterPane(numberRadioButton)); - leftControlPane.add(this.createRadioCenterPane(currencyRadioButton)); - leftControlPane.add(this.createRadioCenterPane(percentRadioButton)); - leftControlPane.add(this.createRadioCenterPane(thousandthsRadioButton)); - leftControlPane.add(this.createRadioCenterPane(scientificRadioButton)); - leftControlPane.add(this.createRadioCenterPane(dateRadioButton)); - leftControlPane.add(this.createRadioCenterPane(timeRadioButton)); - leftControlPane.add(this.createRadioCenterPane(textRadioButton)); //content pane. JPanel contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(contentPane, BorderLayout.CENTER); contentPane.setBorder(BorderFactory.createEmptyBorder(4, 0, 2, 0)); patternTextField = new UITextField(); contentPane.add(patternTextField, BorderLayout.NORTH); @@ -128,6 +107,16 @@ public class FormatPane extends BasicPane { //init values. nullRadioButton.setSelected(true); this.applyRadioActionListener(this.nullRadioButton); + + this.add(column( + 10, + cell(FineUIUtils.wrapComponentWithTitle(sampleLabel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_StyleFormat_Sample"))), + row( + 10, + cell(FineUIUtils.wrapComponentWithTitle(leftControlPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Format_Category"))).weight(0.1), + cell(contentPane).weight(0.5) + ) + ).getComponent()); } private void initRadioButton () { @@ -161,6 +150,32 @@ public class FormatPane extends BasicPane { textRadioButton.addActionListener(radioActionListener); } + private void initRadioButtonGroup() { + ButtonGroup categoryButtonGroup = new ButtonGroup(); + categoryButtonGroup.add(nullRadioButton); + categoryButtonGroup.add(numberRadioButton); + categoryButtonGroup.add(currencyRadioButton); + categoryButtonGroup.add(percentRadioButton); + categoryButtonGroup.add(thousandthsRadioButton); + categoryButtonGroup.add(scientificRadioButton); + categoryButtonGroup.add(dateRadioButton); + categoryButtonGroup.add(timeRadioButton); + categoryButtonGroup.add(textRadioButton); + } + + private JPanel initLeftControlPane() { + JPanel leftControlPane =FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); + leftControlPane.add(this.createRadioCenterPane(nullRadioButton)); + leftControlPane.add(this.createRadioCenterPane(numberRadioButton)); + leftControlPane.add(this.createRadioCenterPane(currencyRadioButton)); + leftControlPane.add(this.createRadioCenterPane(percentRadioButton)); + leftControlPane.add(this.createRadioCenterPane(thousandthsRadioButton)); + leftControlPane.add(this.createRadioCenterPane(scientificRadioButton)); + leftControlPane.add(this.createRadioCenterPane(dateRadioButton)); + leftControlPane.add(this.createRadioCenterPane(timeRadioButton)); + leftControlPane.add(this.createRadioCenterPane(textRadioButton)); + return leftControlPane; + } /** * Create radio center pane. */ diff --git a/designer-base/src/main/java/com/fr/design/style/background/BackgroundButtonPane.java b/designer-base/src/main/java/com/fr/design/style/background/BackgroundButtonPane.java index 2ffe5ccadb..4dd7ebab4d 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/BackgroundButtonPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/BackgroundButtonPane.java @@ -19,7 +19,7 @@ public class BackgroundButtonPane extends BackgroundPane { for (Class key : BackgroundFactory.buttonKindsOfKey()) { BackgroundUIWrapper wrapper = BackgroundFactory.getButtonWrapper(key); wrapper.setIndex(index++); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + tabbedPaneBuilder.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), getTabItemPaneByIndex(wrapper.getIndex())); } } @@ -31,11 +31,7 @@ public class BackgroundButtonPane extends BackgroundPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = BackgroundFactory.createButtonIfAbsent(background == null ? null : background.getClass()); - quickPane.addChangeListener(backgroundChangeListener); - cacheMap.put(index, quickPane); } - tabbedPane.setComponentAt(index, quickPane); - tabbedPane.setSelectedIndex(index); return quickPane; } @@ -43,9 +39,7 @@ public class BackgroundButtonPane extends BackgroundPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = BackgroundFactory.createButtonIfAbsent(index); - tabbedPane.setComponentAt(index, quickPane); cacheMap.put(index, quickPane); - quickPane.addChangeListener(backgroundChangeListener); } return quickPane; } diff --git a/designer-base/src/main/java/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java b/designer-base/src/main/java/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java index ed8afc9e4d..9eb384ab55 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java @@ -47,7 +47,7 @@ public class BackgroundCardSwitchButtonPane extends BackgroundButtonPane { for (Class key : cardSwitchButton.keySet()) { BackgroundUIWrapper wrapper = cardSwitchButton.get(key); wrapper.setIndex(index++); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + tabbedPaneBuilder.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), getTabItemPaneByIndex(wrapper.getIndex())); } } @@ -63,11 +63,8 @@ public class BackgroundCardSwitchButtonPane extends BackgroundButtonPane { if (quickPane == null) { BackgroundUIWrapper uiWrapper = getBackgroundUIWrapper(background); quickPane = BackgroundFactory.createByWrapper(uiWrapper); - quickPane.addChangeListener(backgroundChangeListener); cacheMap.put(index, quickPane); } - tabbedPane.setComponentAt(index, quickPane); - tabbedPane.setSelectedIndex(index); return quickPane; } @@ -76,9 +73,7 @@ public class BackgroundCardSwitchButtonPane extends BackgroundButtonPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = createDetailPaneByIndex(index); - tabbedPane.setComponentAt(index, quickPane); cacheMap.put(index, quickPane); - quickPane.addChangeListener(backgroundChangeListener); } return quickPane; } diff --git a/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java index ebaf04e32a..390b77c39f 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java @@ -3,13 +3,12 @@ */ package com.fr.design.style.background; -import java.awt.BorderLayout; import java.awt.Dimension; import java.util.HashMap; import java.util.Map; import com.fr.base.background.ColorBackground; -import com.fr.design.gui.frpane.UITabbedPane; +import com.fr.design.gui.frpane.FineTabbedPane; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -23,10 +22,14 @@ import com.fr.design.style.background.impl.ColorNoThemeBackgroundPane; import com.fr.general.Background; import com.fr.log.FineLoggerFactory; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; + public class BackgroundPane extends BasicPane { - protected UITabbedPane tabbedPane = null; + protected FineTabbedPane.TabPaneBuilder tabbedPaneBuilder = new FineTabbedPane.TabPaneBuilder(); + protected FineTabbedPane tabbedPane = null; private EventListenerList eventChangeList = new EventListenerList(); protected Map cacheMap = new HashMap<>(); @@ -42,21 +45,12 @@ public class BackgroundPane extends BasicPane { protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - - previewPane = new BackgroundPreviewLabel(); - previewPane.addBackgroundChangeListener(new ChangeListener() { - - public void stateChanged(ChangeEvent e) { - fireStateChanged(); - } - }); - tabbedPane = new UITabbedPane(); - this.add(tabbedPane, BorderLayout.CENTER); - initTabPane(); + tabbedPane = tabbedPaneBuilder.withHeadRatio(0.65f).build(); - tabbedPane.addChangeListener(backgroundChangeListener); - tabbedPane.setPreferredSize(new Dimension(200, 210)); + add(column( + cell(tabbedPane) + ).getComponent()); } protected void initTabPane() { @@ -64,7 +58,7 @@ public class BackgroundPane extends BasicPane { for (Class key : BackgroundFactory.kindsOfKey()) { BackgroundUIWrapper wrapper = BackgroundFactory.getWrapper(key); wrapper.setIndex(index++); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + tabbedPaneBuilder.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), getTabItemPaneByIndex(wrapper.getIndex())); } } @@ -98,11 +92,8 @@ public class BackgroundPane extends BasicPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = BackgroundFactory.createIfAbsent(background == null ? null : background.getClass()); - quickPane.addChangeListener(backgroundChangeListener); cacheMap.put(index, quickPane); } - tabbedPane.setComponentAt(index, quickPane); - tabbedPane.setSelectedIndex(index); return quickPane; } @@ -110,9 +101,7 @@ public class BackgroundPane extends BasicPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = BackgroundFactory.createIfAbsent(index); - tabbedPane.setComponentAt(index, quickPane); cacheMap.put(index, quickPane); - quickPane.addChangeListener(backgroundChangeListener); } return quickPane; } @@ -129,9 +118,6 @@ public class BackgroundPane extends BasicPane { int index = wrapper.getIndex(); BackgroundDetailPane quickPane = getTabItemPane(background, index); quickPane.populate(background); - - tabbedPane.doLayout(); - tabbedPane.validate(); } protected BackgroundUIWrapper getBackgroundUIWrapper(Background background) { @@ -151,16 +137,5 @@ public class BackgroundPane extends BasicPane { } return null; } - /** - * Change listener. - */ - protected ChangeListener backgroundChangeListener = new ChangeListener() { - - public void stateChanged(ChangeEvent evt) { - previewPane.setBackgroundObject(update()); - previewPane.repaint(); - } - }; - private BackgroundPreviewLabel previewPane = null; } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane4Browser.java b/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane4Browser.java index d6cae505b5..8aca7bac53 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane4Browser.java +++ b/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane4Browser.java @@ -18,7 +18,7 @@ public class BackgroundPane4Browser extends BackgroundPane { for (Class key : BackgroundFactory.browserKindsOfKey()) { BackgroundUIWrapper wrapper = BackgroundFactory.getBrowserWrapper(key); wrapper.setIndex(index++); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + tabbedPaneBuilder.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), getTabItemPaneByIndex(wrapper.getIndex())); } } @@ -30,11 +30,8 @@ public class BackgroundPane4Browser extends BackgroundPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = BackgroundFactory.createBrowserIfAbsent(background == null ? null : background.getClass()); - quickPane.addChangeListener(backgroundChangeListener); cacheMap.put(index, quickPane); } - tabbedPane.setComponentAt(index, quickPane); - tabbedPane.setSelectedIndex(index); return quickPane; } @@ -42,9 +39,7 @@ public class BackgroundPane4Browser extends BackgroundPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = BackgroundFactory.createBrowserIfAbsent(index); - tabbedPane.setComponentAt(index, quickPane); cacheMap.put(index, quickPane); - quickPane.addChangeListener(backgroundChangeListener); } return quickPane; } diff --git a/designer-base/src/main/java/com/fr/design/style/background/BackgroundTabPane.java b/designer-base/src/main/java/com/fr/design/style/background/BackgroundTabPane.java index 08d2a2e6a4..3e58ac12a3 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/BackgroundTabPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/BackgroundTabPane.java @@ -44,7 +44,7 @@ public class BackgroundTabPane extends BackgroundPane { for (Class key : tabpane.keySet()) { BackgroundUIWrapper wrapper = tabpane.get(key); wrapper.setIndex(index++); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + tabbedPaneBuilder.addTab(com.fr.design.i18n.Toolkit.i18nText(wrapper.getTitle()), getTabItemPaneByIndex(wrapper.getIndex())); } } @@ -57,11 +57,8 @@ public class BackgroundTabPane extends BackgroundPane { if (quickPane == null) { BackgroundUIWrapper uiWrapper = getBackgroundUIWrapper(background); quickPane = BackgroundFactory.createByWrapper(uiWrapper); - quickPane.addChangeListener(backgroundChangeListener); cacheMap.put(index, quickPane); } - tabbedPane.setComponentAt(index, quickPane); - tabbedPane.setSelectedIndex(index); return quickPane; } @@ -69,9 +66,7 @@ public class BackgroundTabPane extends BackgroundPane { BackgroundDetailPane quickPane = cacheMap.get(index); if (quickPane == null) { quickPane = createDetailPaneByIndex(index); - tabbedPane.setComponentAt(index, quickPane); cacheMap.put(index, quickPane); - quickPane.addChangeListener(backgroundChangeListener); } return quickPane; } diff --git a/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBackgroundPane.java index 1cbf543a4b..d26f837737 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBackgroundPane.java @@ -1,5 +1,6 @@ package com.fr.design.style.background.gradient; +import com.fine.theme.utils.FineUIUtils; import com.fr.base.background.GradientBackground; import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.ilable.UILabel; @@ -20,6 +21,12 @@ import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.fix; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 渐变色的面板,不是很pp,面板应用显得繁琐,有写可以写成控件类型,比如色彩选择的。。,可以做得花哨点 * @author ben @@ -33,45 +40,44 @@ public class GradientBackgroundPane extends BackgroundDetailPane { private ChangeListener changeListener = null; public GradientBackgroundPane() { - - // bug 5452 简化GradientPane - JPanel jpanel = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Background_Choose_Gradient_Color")); - jpanel.setPreferredSize(new Dimension(450, 320)); - jpanel.setLayout(new BorderLayout()); - // neil:增加渐变色拖动条 - JPanel gradientPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); - JPanel blankJp = new JPanel(); gradientBar = new GradientBar(4, DEFAULT_GRADIENT_WIDTH); - blankJp.add(gradientBar); - UILabel jl = FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Drag_To_Select_Gradient")); - jl.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 20)); - jl.setHorizontalAlignment(SwingConstants.CENTER); - gradientPanel.add(jl, BorderLayout.NORTH); - gradientPanel.add(blankJp, BorderLayout.SOUTH); - jpanel.add(gradientPanel, BorderLayout.NORTH); - - JPanel centerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane(); - JPanel innercenterPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - centerPane.add(new UILabel(" ")); - centerPane.add(innercenterPane); - innercenterPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Gradient_Direction") + ":")); left2right = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Page_Setup_Horizontal")); - innercenterPane.add(left2right); left2right.setSelected(true); left2right.addActionListener(reviewListener); top2bottom = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Page_Setup_Vertical")); - innercenterPane.add(top2bottom); top2bottom.addActionListener(reviewListener); ButtonGroup toggle = new ButtonGroup(); toggle.add(left2right); toggle.add(top2bottom); - jpanel.add(centerPane, BorderLayout.CENTER); - this.add(jpanel); + JPanel jpanel = column( + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Drag_To_Select_Gradient"))), + flex() + ), + fix(100), + row( + flex(), + cell(gradientBar), + flex() + ), + fix(100), + row( + 5, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Gradient_Direction") + ":")), + cell(left2right), + cell(top2bottom), + flex() + + ) + ).getComponent(); + + jpanel.setPreferredSize(new Dimension(600, 450)); + this.add(FineUIUtils.wrapComponentWithTitle(jpanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Background_Choose_Gradient_Color"))); } diff --git a/designer-base/src/main/java/com/fr/design/style/background/impl/BPane.java b/designer-base/src/main/java/com/fr/design/style/background/impl/BPane.java index 8f91686764..0015daaf2c 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/impl/BPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/impl/BPane.java @@ -1,11 +1,15 @@ package com.fr.design.style.background.impl; +import com.fine.theme.utils.FineUIUtils; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.style.background.BackgroundDetailPane; import javax.swing.*; import java.awt.*; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; + /** * Created by richie on 16/5/18. */ @@ -18,20 +22,16 @@ public abstract class BPane extends BackgroundDetailPane { protected void initComponents(int nColumn) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); - - JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(contentPane, BorderLayout.NORTH); -// contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); - - // type type. - - JPanel typePane = FRGUIPaneFactory.createTitledBorderPane(titleOfTypePane()); - contentPane.add(typePane); JPanel typePane2 = new JPanel(); - typePane.add(typePane2); typePane2.setLayout(layoutOfTypePane(nColumn)); setChildrenOfTypePane(typePane2); + JPanel contentPane = column( + 10, + cell(FineUIUtils.wrapComponentWithTitle(typePane2, titleOfTypePane())) + ).getComponent(); + this.add(contentPane, BorderLayout.NORTH); + setChildrenOfContentPane(contentPane); } diff --git a/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java index 3eb990c318..d5efb5ac9e 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java @@ -1,5 +1,6 @@ package com.fr.design.style.background.impl; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.Style; import com.fr.base.background.ImageBackground; import com.fr.base.background.ImageFileBackground; @@ -19,14 +20,18 @@ import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.*; + /** * Image background pane. */ @@ -47,36 +52,35 @@ public class ImageBackgroundPane extends BackgroundDetailPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); // preview pane - JPanel previewContainerPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - this.add(previewContainerPane, BorderLayout.CENTER); - - JPanel previewOwnerPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); - previewOwnerPane.setLayout(new BorderLayout()); - previewContainerPane.add(previewOwnerPane, BorderLayout.CENTER); - previewContainerPane.add(initSelectFilePane(), BorderLayout.EAST); previewPane = new ImagePreviewPane(); - previewOwnerPane.add(new JScrollPane(previewPane)); previewPane.addChangeListener(imageSizeChangeListener); // init image file chooser. imageFileChooser = new ImageFileChooser(); imageFileChooser.setMultiSelectionEnabled(false); + + + this.add(column( + 5, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))), + row( + 10, + cell(new JScrollPane(previewPane)).weight(0.65).with(it -> { + it.getViewport().setBackground(Color.WHITE); + it.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, UIManager.getColor("defaultBorderColor"))); + }), + cell(initSelectFilePane()).weight(0.1) + ).with(it -> it.setPreferredSize(new Dimension(it.getWidth(), 400))) + ).with(it -> it.setBorder(new ScaledEmptyBorder(10,10,10,10))).getComponent()); } public JPanel initSelectFilePane() { - JPanel selectFilePane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - - selectFilePane.setBorder(BorderFactory.createEmptyBorder(8, 2, 4, 0)); UIButton selectPictureButton = new UIButton( com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Image_Select")); - selectFilePane.add(selectPictureButton, BorderLayout.NORTH); selectPictureButton.setMnemonic('S'); selectPictureButton.addActionListener(selectPictureActionListener); - JPanel layoutPane = FRGUIPaneFactory.createMediumHGapHighTopFlowInnerContainer_M_Pane(); - selectFilePane.add(layoutPane, BorderLayout.CENTER); - //布局 defaultRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Layout_Default")); tiledRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Layout_Image_Titled")); @@ -92,16 +96,20 @@ public class ImageBackgroundPane extends BackgroundDetailPane { for (UIRadioButton button : imageLayoutButtons()) { jp.add(button); } - layoutPane.add(jp); - ButtonGroup layoutBG = new ButtonGroup(); layoutBG.add(defaultRadioButton); layoutBG.add(tiledRadioButton); layoutBG.add(extendRadioButton); layoutBG.add(adjustRadioButton); - defaultRadioButton.setSelected(true); - return selectFilePane; + return column( + 15, + cell(selectPictureButton), + column( + 15, + cell(jp) + ) + ).getComponent(); } protected UIRadioButton[] imageLayoutButtons() { diff --git a/designer-base/src/main/java/com/fr/design/style/background/impl/NullBackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/impl/NullBackgroundPane.java index f29ece0c01..8945e8c87f 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/impl/NullBackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/impl/NullBackgroundPane.java @@ -19,10 +19,9 @@ public class NullBackgroundPane extends BackgroundDetailPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); UILabel centerLabel = new UILabel( - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Background_Is_Null") + "..."); + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Background_Is_Null")); this.add(centerLabel); centerLabel.setHorizontalAlignment(SwingConstants.CENTER); - centerLabel.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor())); } public void populate(Background background) { diff --git a/designer-base/src/main/java/com/fr/design/style/background/impl/PatternBackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/impl/PatternBackgroundPane.java index 886076ca08..56a90f0bc3 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/impl/PatternBackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/impl/PatternBackgroundPane.java @@ -1,5 +1,6 @@ package com.fr.design.style.background.impl; +import com.fine.theme.utils.FineUIUtils; import com.fr.base.GraphHelper; import com.fr.base.background.PatternBackground; import com.fr.design.gui.ilable.UILabel; @@ -16,6 +17,10 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Rectangle2D; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * Pattern background pane. */ @@ -64,30 +69,27 @@ public class PatternBackgroundPane extends BPane { protected void setChildrenOfContentPane(JPanel contentPane) { // colors JPanel colorPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Colors")); - contentPane.add(colorPane); foregroundColorPane = new ColorSelectBox(80); + foregroundColorPane.setPreferredSize(new Dimension(80, 24)); backgroundColorPane = new ColorSelectBox(80); + backgroundColorPane.setPreferredSize(new Dimension(80, 24)); foregroundColorPane.setSelectObject(Color.lightGray); backgroundColorPane.setSelectObject(Color.black); - - colorPane.add(Box.createHorizontalStrut(2)); - colorPane.add(this.createLabelColorPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Foreground") - + ":", foregroundColorPane)); - - colorPane.add(Box.createHorizontalStrut(8)); - - colorPane.add(this.createLabelColorPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background") - + ":", backgroundColorPane)); - } - - private JPanel createLabelColorPane(String text, - ColorSelectBox colorPane) { - JPanel labelColorPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - labelColorPane.add(new UILabel(text)); - labelColorPane.add(colorPane); - - return labelColorPane; + contentPane.add(FineUIUtils.wrapComponentWithTitle(row( + 10, + row( + 10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Foreground") + ":")), + cell(foregroundColorPane) + ).weight(0.1), + row( + 10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background") + ":")), + cell(backgroundColorPane) + ).weight(0.1), + flex(0.1) + ).getComponent(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Colors"))); } public void populate(Background background) { diff --git a/designer-base/src/main/java/com/fr/design/style/color/ColorAdjustPane.java b/designer-base/src/main/java/com/fr/design/style/color/ColorAdjustPane.java index f5ff739fa6..6d982edc05 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/ColorAdjustPane.java +++ b/designer-base/src/main/java/com/fr/design/style/color/ColorAdjustPane.java @@ -1,5 +1,6 @@ package com.fr.design.style.color; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.BaseUtils; import com.fr.chart.base.ChartConstants; import com.fr.design.DesignerEnvManager; @@ -13,6 +14,7 @@ import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; @@ -36,7 +38,7 @@ public class ColorAdjustPane extends JPanel implements UIObserver { public static final Color[] DEFAULT_COLORS = ChartConstants.NEW_FEATURES; - private static final int COUNT_OF_ROW = 8; + private static final int COUNT_OF_ROW = 20; private static final int MAX_BUTTON = 40; @@ -81,10 +83,10 @@ public class ColorAdjustPane extends JPanel implements UIObserver { private void createContentPane() { VerticalFlowLayout layout = new VerticalFlowLayout(0, 0, 0); layout.setAlignLeft(true); - this.setLayout(layout); + this.setLayout(new BorderLayout()); for (int i = 0, size = colorButtons.size(); i < size; i += COUNT_OF_ROW) { - JPanel panel = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); + JPanel panel = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(2, 2); int count = i + COUNT_OF_ROW > colorButtons.size() ? colorButtons.size() : i + COUNT_OF_ROW; for (int j = i; j < count; j++) { colorButtons.get(j).setLastButton(false); @@ -124,6 +126,7 @@ public class ColorAdjustPane extends JPanel implements UIObserver { }; colorButton.addChangeListener(changeListener); + colorButton.setBorder(new ScaledEmptyBorder(0, 0, 0, 15)); return colorButton; } diff --git a/designer-base/src/main/java/com/fr/design/style/color/ColorSelectDetailPane.java b/designer-base/src/main/java/com/fr/design/style/color/ColorSelectDetailPane.java index 3756fc627e..9c08d62ef9 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/ColorSelectDetailPane.java +++ b/designer-base/src/main/java/com/fr/design/style/color/ColorSelectDetailPane.java @@ -1,6 +1,11 @@ package com.fr.design.style.color; +import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.utils.FineUIUtils; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.frpane.FineTabbedPane; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; @@ -11,6 +16,10 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; import static com.fr.design.i18n.Toolkit.i18nText; /** @@ -26,9 +35,6 @@ public class ColorSelectDetailPane extends BasicPane { // 颜色选择器面板 private JColorChooser selectedPanel; - // 最近使用颜色面板 - private JPanel recentUsePanel; - // 预览 private JPanel previewPanel; @@ -76,20 +82,12 @@ public class ColorSelectDetailPane extends BasicPane { swatchChooserPanel = new SwatchChooserPanel(); customChooserPanel = new CustomChooserPanel(); selectedPanel.setChooserPanels(new AbstractColorChooserPanel[]{customChooserPanel, swatchChooserPanel}); - this.add(selectedPanel, BorderLayout.NORTH); - - // 最近使用面板 - recentUsePanel = FRGUIPaneFactory.createTitledBorderPane(i18nText("Fine-Design_Basic_Used")); - RecentUseColorPane recent = new RecentUseColorPane(selectedPanel); - recentUsePanel.add(recent); - - this.add(recentUsePanel, BorderLayout.CENTER); - selectedPanel.setPreviewPanel(new JPanel()); // 预览 - previewPanel = FRGUIPaneFactory.createTitledBorderPaneCenter(i18nText("Fine-Design_Basic_Preview")); + previewPanel = new JPanel(new BorderLayout()); final ColorChooserPreview colorChooserPreview = new ColorChooserPreview(); + colorChooserPreview.setBackground(Color.WHITE); ColorSelectionModel model = selectedPanel.getSelectionModel(); model.addChangeListener(new ChangeListener() { @Override @@ -99,8 +97,42 @@ public class ColorSelectDetailPane extends BasicPane { colorChooserPreview.repaint(); } }); - previewPanel.add(colorChooserPreview); - this.add(previewPanel, BorderLayout.SOUTH); + previewPanel.add(row( + flex(), + column(flex(), cell(colorChooserPreview), flex()), + flex() + ).getComponent()); + add(initCenterPane()); + } + + private FineTabbedPane buildTabbedPane() { + return FineTabbedPane.builder().withHeadRatio(0.3f) + .addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom"), customChooserPanel) + .addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Swatch"), swatchChooserPanel).build(); + } + + private JPanel initCenterPane() { + // 最近使用面板 + RecentUseColorPane recent = new RecentUseColorPane(selectedPanel); + UILabel label = new UILabel( i18nText("Fine-Design_Basic_Used")); + FineUIUtils.wrapBoldLabelWithUnderline(label); + + FineTabbedPane tabbedPane = buildTabbedPane(); + return column( + cell(tabbedPane), + column( + 10, + cell(label), cell(recent), + column( + 2, + cell(new UILabel(i18nText("Fine-Design_Basic_Preview"))), + cell(previewPanel).with(it -> { + it.setBorder(new FineRoundBorder()); + it.setPreferredSize(new Dimension(this.getPreferredSize().width, 120)); + it.setBackground(Color.WHITE); + }) + )).with(it -> it.setBorder(new ScaledEmptyBorder(0, 10, 0, 10))) + ).getComponent(); } public void populate(Color color){ diff --git a/designer-base/src/main/java/com/fr/design/style/color/CustomChooserPanel.java b/designer-base/src/main/java/com/fr/design/style/color/CustomChooserPanel.java index 95f2d7f36e..729159c731 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/CustomChooserPanel.java +++ b/designer-base/src/main/java/com/fr/design/style/color/CustomChooserPanel.java @@ -29,6 +29,12 @@ import com.fr.design.gui.ispinner.UIBasicSpinner; import com.fr.design.gui.itextfield.UITextField; import com.fr.log.FineLoggerFactory; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.fix; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 颜色选择器自定义面板 @@ -114,17 +120,17 @@ class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelec /** * The default width of the gradient image. */ - private static final int IMG_WIDTH = 200; + private static final int IMG_WIDTH = 180; /** * The default height of the gradient image. */ - private static final int IMG_HEIGHT = 205; + private static final int IMG_HEIGHT = 180; /** * The default width of the track gradient. */ - private static final int TRACK_WIDTH = 20; + private static final int TRACK_WIDTH = 12; /** * The UILabel for Red. @@ -156,6 +162,9 @@ class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelec private static final int TWENTY_FOUR = 24; private static final int HEX_FF = 0xff; + private static final int BUTTON_SPINNER_GAP = 5; + private static final int HSB_GAP = 10; + // 占位label private static final UILabel PLACE_HOLDER_LABEL = new UILabel(); @@ -583,8 +592,9 @@ class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelec * This method builds the DefaultHSBChooserPanel. */ protected void buildChooser() { - setLayout(new BorderLayout()); - add(buildRightPanel(), BorderLayout.EAST); + setLayout(new BorderLayout(10, 0)); + setPreferredSize(new Dimension((int) this.getPreferredSize().getWidth(), 180)); + add(buildRightPanel(), BorderLayout.CENTER); JPanel container = new JPanel(); container.setLayout(new BorderLayout()); @@ -679,47 +689,50 @@ class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelec * @return The right side panel. */ private Container buildRightPanel() { - JPanel container = new JPanel(); - container.setLayout(new FlowLayout(FlowLayout.RIGHT)); - - // 主面板 - JPanel mainPanel = new JPanel(); - mainPanel.setLayout(new BorderLayout(0, 10)); - UILabel label = new UILabel(); - label.setSize(200, 200); - container.add(label); - container.add(mainPanel); - - // hsb和rgb面板 - JPanel hsbAndRgbPanel = new JPanel(); - hsbAndRgbPanel.setLayout(new BorderLayout(0, 16)); - hsbAndRgbPanel.add(initialHSBPanel(), BorderLayout.CENTER); - hsbAndRgbPanel.add(initialRGBPanel(), BorderLayout.SOUTH); - - // 十六进制面板 - JPanel hexPanel = new JPanel(); - hexPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 8, 0)); - hexPanel.add(new UILabel("#")); - hexPanel.add(field); - - mainPanel.add(hsbAndRgbPanel, BorderLayout.CENTER); - mainPanel.add(hexPanel, BorderLayout.SOUTH); - - JPanel rightPane = new JPanel(new BorderLayout()); + + JPanel container = new JPanel(new BorderLayout()); JButton pickColorButton = PickColorButtonFactory.getPickColorButton(this, PickColorButtonFactory.IconType.ICON18, true); - JPanel blankArea = new JPanel(); - blankArea.setPreferredSize(new Dimension(100, 175)); - rightPane.add(blankArea, BorderLayout.CENTER); - JPanel buttonPane = new JPanel(new BorderLayout()); - buttonPane.add(pickColorButton, BorderLayout.WEST); - rightPane.add(buttonPane, BorderLayout.SOUTH); - container.add(rightPane); + container.add(column( + 10, + row( + 10, + cell(initialHSBPanel()), + cell(initialRGBPanel()), + flex() + ), + row( + BUTTON_SPINNER_GAP, + row(fix((int) hRadio.getPreferredSize().getHeight()), cell(new UILabel("#")), flex()).with(it -> it.setPreferredSize(hRadio.getPreferredSize())), + cell(field), + column( + flex(), + cell(pickColorButton), + flex() + ) + ) + ).getComponent()); return container; } //初始化HSB部分 private JPanel initialHSBPanel() { + initButtonGroup(); + initSpinner(); + MouseAdapter cl = new RadioStateListener(); + locked = HLOCKED; + hRadio.setSelected(true); + hRadio.addMouseListener(cl); + sRadio.addMouseListener(cl); + bRadio.addMouseListener(cl); + + return column(HSB_GAP, row(BUTTON_SPINNER_GAP, cell(hRadio), cell(hSpinner)), + row(BUTTON_SPINNER_GAP, cell(sRadio), cell(sSpinner)), + row(BUTTON_SPINNER_GAP, cell(bRadio), cell(bSpinner)) + ).getComponent(); + } + + private void initButtonGroup() { hRadio = new UIRadioButton("H"); sRadio = new UIRadioButton("S"); bRadio = new UIRadioButton("B"); @@ -727,54 +740,37 @@ class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelec group.add(hRadio); group.add(sRadio); group.add(bRadio); + } + private void initSpinner() { hSpinner = new UIBasicSpinner(new SpinnerNumberModel(0, 0, 359, 1)); + setBackground(hSpinner); sSpinner = new UIBasicSpinner(new SpinnerNumberModel(0, 0, 100, 1)); + setBackground(sSpinner); bSpinner = new UIBasicSpinner(new SpinnerNumberModel(100, 0, 100, 1)); + setBackground(bSpinner); hSpinner.setEnabled(true); sSpinner.setEnabled(false); bSpinner.setEnabled(false); - MouseAdapter cl = new RadioStateListener(); - locked = HLOCKED; - hRadio.setSelected(true); - hRadio.addMouseListener(cl); - sRadio.addMouseListener(cl); - bRadio.addMouseListener(cl); - ChangeListener scroll = new ImageScrollListener(); hSpinner.addChangeListener(scroll); sSpinner.addChangeListener(scroll); bSpinner.addChangeListener(scroll); + } - JPanel hsbPanel = new JPanel(); - hsbPanel.setLayout(new GridLayout(3, 0, 0, 5)); - - JPanel hPanel = new JPanel(); - hPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 0)); - hPanel.add(hRadio); - hPanel.add(hSpinner); - hsbPanel.add(hPanel); - - JPanel sPanel = new JPanel(); - sPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 0)); - sPanel.add(sRadio); - sPanel.add(sSpinner); - hsbPanel.add(sPanel); - - JPanel lPanel = new JPanel(); - lPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 0)); - lPanel.add(bRadio); - lPanel.add(bSpinner); - hsbPanel.add(lPanel); - return hsbPanel; + private void setBackground(Component component) { + component.setBackground(Color.WHITE); } private JPanel initialRGBPanel() { // 初始化RGB部分 rSpinner = new UIBasicSpinner(new SpinnerNumberModel(0, 0, 255, 1)); + setBackground(rSpinner); gSpinner = new UIBasicSpinner(new SpinnerNumberModel(0, 0, 255, 1)); + setBackground(gSpinner); bbSpinner = new UIBasicSpinner(new SpinnerNumberModel(0, 0, 255, 1)); + setBackground(bbSpinner); rSpinner.setEnabled(true); gSpinner.setEnabled(true); @@ -784,31 +780,15 @@ class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelec TextDocumentListener listen = new TextDocumentListener(); field = new UITextField(); - field.setPreferredSize(new Dimension(70, 18)); + field.setPreferredSize(new Dimension(hSpinner.getPreferredSize())); field.getDocument().addDocumentListener(listen); - JPanel rgbPanel = new JPanel(); - rgbPanel.setLayout(new GridLayout(3, 0, 0, 5)); - - JPanel rPanel = new JPanel(); - rPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 0)); - rPanel.add(R); - rPanel.add(rSpinner); - rgbPanel.add(rPanel); - - JPanel gPanel = new JPanel(); - gPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 0)); - gPanel.add(G); - gPanel.add(gSpinner); - rgbPanel.add(gPanel); - - JPanel bPanel = new JPanel(); - bPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 0)); - bPanel.add(B); - bPanel.add(bbSpinner); - rgbPanel.add(bPanel); - - return rgbPanel; + return column( + HSB_GAP, + row(BUTTON_SPINNER_GAP, cell(R), cell(rSpinner)), + row(BUTTON_SPINNER_GAP, cell(G), cell(gSpinner)), + row(BUTTON_SPINNER_GAP, cell(B), cell(bbSpinner)) + ).getComponent(); } /** diff --git a/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java b/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java index 5d7e81487e..28fcadfab7 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java +++ b/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java @@ -11,10 +11,12 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; -import javax.swing.BorderFactory; -import javax.swing.Box; +import com.fine.theme.utils.FineUIUtils; import com.fr.design.gui.ilable.UILabel; + +import javax.swing.BorderFactory; import javax.swing.JPanel; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -23,6 +25,10 @@ import com.fr.design.border.UITitledBorder; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.dialog.BasicPane; +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; + /** * The detail color select pane. @@ -39,26 +45,12 @@ public class DetailColorSelectPane extends BasicPane { public DetailColorSelectPane(boolean supportTheme) { this.setBorder(BorderFactory.createEmptyBorder(4, 4, 0, 4)); this.setLayout(FRGUIPaneFactory.createBorderLayout()); - - JPanel titledefaultPane=FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Color")); - JPanel defaultPane =FRGUIPaneFactory.createX_AXISBoxInnerContainer_S_Pane(); - this.add(titledefaultPane, BorderLayout.WEST); - titledefaultPane.add(defaultPane); - - defaultPane.add(Box.createHorizontalStrut(4)); - JPanel colorSelectContainPane =FRGUIPaneFactory.createBorderLayout_L_Pane(); - defaultPane.add(colorSelectContainPane); colorSelectPane = NewColorSelectPane.createColorSelectPaneWithTheme(supportTheme); - colorSelectContainPane.add(colorSelectPane, BorderLayout.NORTH); - - defaultPane.add(Box.createHorizontalStrut(8)); //color preview JPanel colorPreviewContainPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - defaultPane.add(colorPreviewContainPane); JPanel colorPreviewPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - colorPreviewPane.setPreferredSize(new Dimension(180, 60)); colorPreviewContainPane.add(colorPreviewPane, BorderLayout.NORTH); colorPreviewLabel = new UILabel(" ") { @@ -76,13 +68,26 @@ public class DetailColorSelectPane extends BasicPane { this.getFont().getStyle(), this.getFont().getSize() + 4)); colorPreviewLabel.setBorder(BorderFactory.createEmptyBorder(0, 2, 2, 2)); colorPreviewPane.add(colorPreviewLabel, BorderLayout.CENTER); - UITitledBorder explainBorder = UITitledBorder.createBorderWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview")); - colorPreviewPane.setBorder(explainBorder); this.addChangeListener(colorPreviewLabelChangeListener); //use the white as the default color. this.populate(Color.WHITE); + + JPanel center = column( + 5, + row( + 20, + cell(colorSelectPane.transparentButton).weight(0.2), + cell(new UILabel("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview") + "")).weight(0.36) + ), + row( + 20, + cell(colorSelectPane.theme).weight(0.2).with(it -> it.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, UIManager.getColor("defaultBorderColor")))), + cell(colorPreviewPane).weight(0.36).with(it -> it.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, UIManager.getColor("defaultBorderColor")))) + ) + ).getComponent(); + this.add(FineUIUtils.wrapComponentWithTitle(center, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Color"))); } @Override diff --git a/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectPane.java b/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectPane.java index 9b89f07768..54824dd0cc 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectPane.java +++ b/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectPane.java @@ -1,6 +1,8 @@ package com.fr.design.style.color; +import com.fine.theme.light.ui.FineRoundBorder; import com.fine.theme.utils.FineUIScale; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.FineColor; import com.fr.base.theme.FineColorDeriveState; @@ -26,13 +28,15 @@ import javax.swing.event.ChangeListener; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Cursor; -import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; + /** * @author zhou @@ -59,6 +63,12 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { private final JPanel menuColorPane; private ColorCell[][] themeColorCellGrid; + // 透明 + public UIButton transparentButton = new UIButton(); + // 主题 + public JPanel theme = new JPanel(); + + public static NewColorSelectPane createColorSelectPaneWithTheme(boolean supportTheme) { return new NewColorSelectPane(true, supportTheme); } @@ -82,34 +92,37 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { initSelectButton(isSupportTransparent); // center JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - centerPane.setBorder(new ScaledEmptyBorder(10, 6, 0, 6)); - this.add(centerPane, BorderLayout.CENTER); + centerPane.setOpaque(false); menuColorPane = getMenuColorPane(); if (isSupportThemeColor) { JPanel themePane = initThemeColorPane(); + themePane.setOpaque(false); + themePane.setBorder(new ScaledEmptyBorder(5, 6, 0, 6)); centerPane.add(themePane); } else { + menuColorPane.setBorder(new ScaledEmptyBorder(5, 6, 0, 6)); centerPane.add(menuColorPane); + menuColorPane.setOpaque(false); initMenuColorPane(); } JPanel standardColorPane = new JPanel(new BorderLayout(0, 5)); - standardColorPane.setBorder(new ScaledEmptyBorder(10, 0, 0, 0)); + standardColorPane.setBorder(new ScaledEmptyBorder(10, 6, 0, 6)); standardColorPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Standard_Color")), BorderLayout.CENTER); - centerPane.add(standardColorPane); JPanel colorSelectPane = createStandardColorPane(); standardColorPane.add(colorSelectPane, BorderLayout.SOUTH); + standardColorPane.setOpaque(false); // 增加最近使用 pane JPanel row1Pane = new JPanel(new BorderLayout(0, 5)); - row1Pane.setBorder(new ScaledEmptyBorder(10, 0, 0, 0)); + row1Pane.setBorder(new ScaledEmptyBorder(10, 6, 0, 6)); row1Pane.add(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Used")), BorderLayout.CENTER); - centerPane.add(row1Pane); // 最近使用 usedColorPane = new NewUsedColorPane(9, this, selectRealTime()); row1Pane.add(usedColorPane.getPane(), BorderLayout.SOUTH); + row1Pane.setOpaque(false); // mod by anchore 16/11/16 final UIButton customButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_More_Color")); @@ -127,9 +140,26 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { customButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); JPanel centerPane1 = new JPanel(new BorderLayout(0, 0)); - centerPane1.setBorder(new ScaledEmptyBorder(8, 0, 9, 0)); + centerPane1.setBorder(new ScaledEmptyBorder(10, 6, 6, 6)); centerPane1.add(customButton, BorderLayout.CENTER); - centerPane.add(centerPane1); + centerPane1.setOpaque(false); + + + theme = column( + cell(centerPane), + cell(standardColorPane), + cell(row1Pane), + cell(centerPane1) + ).with(it -> { + it.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); + it.setOpaque(true); + + if (!isSupportTransparent) { + it.setBorder(new FineRoundBorder()); + } + }).getComponent(); + + this.add(theme, BorderLayout.CENTER); } private JPanel createStandardColorPane() { @@ -154,6 +184,9 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { JPanel centerPane = new JPanel(new GridLayout(1, 8, DEFAULT_COLOR_HOR_INTERVAL, 0)); menuColorPane.add(northPane, BorderLayout.NORTH); menuColorPane.add(centerPane, BorderLayout.CENTER); + menuColorPane.setOpaque(false); + northPane.setOpaque(false); + centerPane.setOpaque(false); Color[] colorArray = new Color[]{ // 8列主题色 @@ -189,10 +222,11 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { northPane.add(themeColorCellGrid[i][0]); } for (int i = 0; i < colorArray.length; i++) { - JPanel columnPane = new JPanel(new GridLayout(DEFAULT_DERIVE_COUNT - 1, 1, 0, 0)); + JPanel columnPane = new JPanel(new GridLayout(DEFAULT_DERIVE_COUNT - 1, 1, 4, 4)); for (int j = 1; j < DEFAULT_DERIVE_COUNT; j++) { columnPane.add(themeColorCellGrid[i][j]); } + columnPane.setOpaque(false); centerPane.add(columnPane); } @@ -237,7 +271,9 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { Color[] colorArray = this.getColorArray(); for (int i = 0; i < colorArray.length; i++) { Color color = colorArray[i] == null ? UsedColorPane.DEFAULT_COLOR : colorArray[i]; - menuColorPane.add(new ColorCell(color, this)); + ColorCell c = new ColorCell(color, this); + c.setOpaque(false); + menuColorPane.add(c); } } @@ -257,11 +293,14 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { protected void initSelectButton(boolean isSupportTransparent) { this.isSupportTransparent = isSupportTransparent; this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(new UIRoundedBorder(UIConstants.TOOLBAR_BORDER_COLOR, 1, 5)); if (isSupportTransparent) { - UIButton transparentButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_ChartF_Transparency")); - this.add(transparentButton, BorderLayout.NORTH); + JPanel transparentJpanel = new JPanel(new BorderLayout(0, 0)); + transparentButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_ChartF_Transparency")); transparentButton.addActionListener(e -> doTransparent()); + transparentButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); + transparentJpanel.add(transparentButton, BorderLayout.CENTER); + transparentJpanel.setBorder(new ScaledEmptyBorder(6, 6, 6, 6)); + this.add(transparentJpanel, BorderLayout.NORTH); } } @@ -397,6 +436,9 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { private void initialComponents() { int total = columns; JPanel panel = new JPanel(); + // 取色按钮 + JButton pickColorButton = PickColorButtonFactory.getPickColorButton(selectable, PickColorButtonFactory.IconType.ICON16, setColorRealTime); + panel.add(pickColorButton); panel.setLayout(new GridLayout(1, columns + 1, DEFAULT_COLOR_HOR_INTERVAL, 0)); panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); //最近使用颜色 @@ -407,9 +449,6 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { UsedColorPane.DEFAULT_COLOR; panel.add(new ColorCell(color == null ? UsedColorPane.DEFAULT_COLOR : color, selectable)); } - // 取色按钮 - JButton pickColorButton = PickColorButtonFactory.getPickColorButton(selectable, PickColorButtonFactory.IconType.ICON16, setColorRealTime); - panel.add(pickColorButton); this.pane = panel; } @@ -420,7 +459,7 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { int total = columns; Color[] colors = DesignerEnvManager.getEnvManager().getColorConfigManager().getColors(); int size = colors.length; - for (int i = 0; i < total; i++) { + for (int i = 1; i <= total; i++) { ColorCell cell = (ColorCell) this.pane.getComponent(i); Color color = i < size ? colors[size - i - 1] : UsedColorPane.DEFAULT_COLOR; cell.setColor(color == null ? UsedColorPane.DEFAULT_COLOR : color); diff --git a/designer-base/src/main/java/com/fr/design/style/color/RecentUseColorPane.java b/designer-base/src/main/java/com/fr/design/style/color/RecentUseColorPane.java index 1e6d7be885..116220afd9 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/RecentUseColorPane.java +++ b/designer-base/src/main/java/com/fr/design/style/color/RecentUseColorPane.java @@ -18,13 +18,10 @@ public class RecentUseColorPane extends BasicPane implements ColorSelectable { public RecentUseColorPane(JColorChooser chooser) { this.chooser = chooser; - - // center - JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(centerPane, BorderLayout.CENTER); // 最近使用 - UsedColorPane pane = new UsedColorPane(2, 10, this); - centerPane.add(pane.getPane()); + setLayout(new BorderLayout()); + UsedColorPane pane = new UsedColorPane(1, 20, this); + add(pane.getPane(), BorderLayout.WEST); } /** diff --git a/designer-base/src/main/java/com/fr/design/style/color/UsedColorPane.java b/designer-base/src/main/java/com/fr/design/style/color/UsedColorPane.java index a48f33c164..8d12a47c59 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/UsedColorPane.java +++ b/designer-base/src/main/java/com/fr/design/style/color/UsedColorPane.java @@ -65,7 +65,6 @@ public class UsedColorPane extends BasicPane { int total = columns * rows; JPanel panel = new JPanel(); panel.setLayout(new GridLayout(rows, columns, 1, 1)); - panel.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); //最近使用颜色 Color[] colors = DesignerEnvManager.getEnvManager().getColorConfigManager().getColors(); int size = colors.length; diff --git a/designer-base/src/main/resources/com/fine/theme/icon/digitalPlatform.svg b/designer-base/src/main/resources/com/fine/theme/icon/digitalPlatform.svg new file mode 100644 index 0000000000..ca248de1d4 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/digitalPlatform.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/logo.svg b/designer-base/src/main/resources/com/fine/theme/icon/logo.svg new file mode 100644 index 0000000000..eb0f0815d4 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/pages.svg b/designer-base/src/main/resources/com/fine/theme/icon/pages.svg new file mode 100644 index 0000000000..afc2ecb557 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/pages.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/previewSql.svg b/designer-base/src/main/resources/com/fine/theme/icon/previewSql.svg new file mode 100644 index 0000000000..0dd74b8af5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/previewSql.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/tables.svg b/designer-base/src/main/resources/com/fine/theme/icon/tables.svg new file mode 100644 index 0000000000..dd13c2e491 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/tables.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/time.svg b/designer-base/src/main/resources/com/fine/theme/icon/time.svg new file mode 100644 index 0000000000..41774b3bdb --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/time.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/views.svg b/designer-base/src/main/resources/com/fine/theme/icon/views.svg new file mode 100644 index 0000000000..3e4fe18362 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/views.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + 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 4e3213695b..c705431793 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 @@ -23,6 +23,13 @@ "up_arrow": "up_arrow.svg", "select": "select.svg", "recycle": "recycle.svg", + "time": "time.svg", + "logo": "logo.svg", + "pages": "pages.svg", + "digitalPlatform": "digitalPlatform.svg", + "tables": "tables.svg", + "views": "views.svg", + "preview_sql": "previewSql.svg", "database": "dataset/database.svg", "preview": "dataset/preview.svg", "connection": "dataset/connection.svg", @@ -46,6 +53,7 @@ "minus": "filetree/minus.svg", "plus": "filetree/plus.svg", "locate": "filetree/locate.svg", + "locate_disable": "filetree/locate_disable.svg", "rename": "filetree/rename.svg", "collapse_all": "filetree/collapse_all.svg", "vcs_list": "filetree/vcs_list.svg", diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java index 72228e094d..be065a429b 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java @@ -1,5 +1,6 @@ package com.fr.design.module; +import com.fine.theme.light.ui.FineRoundBorder; import com.fr.base.BaseUtils; import com.fr.base.ChartEmptyDataStyleConf; import com.fr.base.Style; @@ -26,21 +27,23 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.SwingWorker; import java.awt.BorderLayout; -import java.awt.Component; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.fix; +import static com.fine.swing.ui.layout.Layouts.row; + /** * Created by mengao on 2017/11/23. */ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private static final int WIDTH = 150; - private static final int HEIGHT = 20; + private static final int HEIGHT = 26; private static final int FIVE = 5; private static final int TEN = 10; private static final int THIRTY = 30; @@ -75,6 +78,17 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { } private JPanel creatNorthPane() { + initEmptyData(); + initImageData(); + UILabel promptContent = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Tip_Content")); + imageContent = new UILabel(Toolkit.i18nText("Fine-Design_Report_Image")); + + return row(20, + row(10, cell(promptContent), cell(emptyData), fix(10), cell(imageContent), cell(imageData)) + ).getComponent(); + } + + private void initEmptyData() { emptyData = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Open"), Toolkit.i18nText("Fine-Design_Chart_Close")}); emptyData.setSelectedIndex(0); emptyData.setPreferredSize(new Dimension(WIDTH, HEIGHT)); @@ -85,7 +99,9 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { repaintPreviewPane(); } }); + } + private void initImageData() { imageData = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Mode_Auto"), Toolkit.i18nText("Fine-Design_Chart_Mode_Custom")}); imageData.setSelectedIndex(0); imageData.setPreferredSize(new Dimension(WIDTH, HEIGHT)); @@ -97,26 +113,19 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { repaintPreviewPane(); } }); - - UILabel promptContent = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Tip_Content")); - imageContent = new UILabel(Toolkit.i18nText("Fine-Design_Report_Image")); - JPanel emptyPane = GUICoreUtils.createFlowPane(new Component[]{promptContent, emptyData}, FlowLayout.LEFT, TEN, 0); - JPanel imagePane = GUICoreUtils.createFlowPane(new Component[]{imageContent, imageData}, FlowLayout.LEFT, TEN, 0); - imagePane.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); - JPanel northPane = GUICoreUtils.createFlowPane(new Component[]{emptyPane, imagePane}, FlowLayout.LEFT, 0, 0); - northPane.setBorder(BorderFactory.createEmptyBorder(0, FIVE, 0, 0)); - return northPane; } private JPanel creatCenterPane() { JPanel centerPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); // preview pane - JPanel previewContainerPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); + JPanel previewContainerPane = new JPanel(new BorderLayout()); centerPane.add(previewContainerPane, BorderLayout.CENTER); + centerPane.add(new UILabel((Toolkit.i18nText("Fine-Design_Basic_Preview"))), BorderLayout.NORTH); + + JPanel previewOwnerPane = new JPanel(new BorderLayout()); + previewOwnerPane.setBorder(new FineRoundBorder()); - JPanel previewOwnerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Preview")); - previewOwnerPane.setLayout(new BorderLayout()); previewContainerPane.add(previewOwnerPane, BorderLayout.CENTER); previewContainerPane.add(initSelectFilePane(), BorderLayout.EAST); previewPane = new ImagePreviewPane(); @@ -133,7 +142,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { JPanel selectFilePane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - selectFilePane.setBorder(BorderFactory.createEmptyBorder(TEN, FIVE, 0, THIRTY)); + selectFilePane.setBorder(BorderFactory.createEmptyBorder(0, FIVE, 0, THIRTY)); defaultRadioButton = new UIRadioButton(Toolkit.i18nText("Fine-Design_Report_Default")); adjustRadioButton = new UIRadioButton(Toolkit.i18nText("Fine-Design_Report_Image_Adjust")); diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java index 4cc8466fd4..498e6d44ef 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java @@ -25,6 +25,11 @@ import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 预定义的图表配色界面. @@ -50,35 +55,29 @@ public class ChartPreFillStylePane extends BasicBeanPane { } private void initComponents() { - - JPanel customPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); - groupButton = new UIButtonGroup<>(new String[]{Toolkit.i18nText("Fine-Design_Chart_Custom_Color"), Toolkit.i18nText("Fine-Design_Chart_Gradient_Color")}); groupButton.setSelectedIndex(0); - customPane.add(groupButton, BorderLayout.NORTH); - changeColorSetPane = new JPanel(cardLayout = new CardLayout()); changeColorSetPane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0)); changeColorSetPane.add(colorGradient = new FixedGradientBarNoTheme(4, 150), "gradient"); changeColorSetPane.add(colorAdjustPane = new ColorAdjustPane(), "acc"); cardLayout.show(changeColorSetPane, "acc"); - customPane.add(changeColorSetPane, BorderLayout.CENTER); - customPane.setPreferredSize(new Dimension(155, 300)); - colorGradient.setPreferredSize(new Dimension(155, 30)); colorGradient.getSelectColorPointBtnP1().setColorInner(Color.WHITE); colorGradient.getSelectColorPointBtnP2().setColorInner(FixedGradientBar.NEW_CHARACTER); - - double p = TableLayout.PREFERRED; - double[] columnSize = {p, p}; - double[] rowSize = {p, p, p}; - Component[][] components = new Component[][]{ - new Component[]{new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Color_Match")), null}, - new Component[]{null, customPane}, - }; + this.setLayout(new BorderLayout()); - this.add(TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize), BorderLayout.WEST); + + this.add(column( + 10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Color_Match"))), + row( + cell(groupButton).weight(0.1), + flex(0.2) + ), + cell(changeColorSetPane) + ).getComponent()); } private void initListener() { diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java index 9cce2be7c3..876864a421 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartPreStylePane.java @@ -10,6 +10,7 @@ import com.fr.design.chart.gui.ChartComponent; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ilable.BoldFontTextLabel; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import javax.swing.JPanel; @@ -19,6 +20,9 @@ import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; + /** * 图表预定义风格界面, 服务器--图表风格. * @author kunsnat E-mail:kunsnat@gmail.com @@ -45,19 +49,24 @@ public class ChartPreStylePane extends BasicBeanPane { boxPane.add(pane, BorderLayout.SOUTH); boxPane.add(fillStylePane, BorderLayout.CENTER); - - this.add(boxPane, BorderLayout.CENTER); - ChartCollection cc = new ChartCollection(); demoPlot = new Bar2DPlot(); cc.addChart(new Chart(demoPlot)); chartComponent = new ChartComponent(); chartComponent.populate(cc); - chartComponent.setPreferredSize(new Dimension(400, 300)); + chartComponent.setPreferredSize(new Dimension(441, 356)); chartComponent.setSupportEdit(false); - - this.add(chartComponent, BorderLayout.SOUTH); + + this.add(column( + 20, + cell(fillStylePane), + column( + 10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))), + cell(chartComponent) + ) + ).getComponent()); initListener(ChartPreStylePane.this); } diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java index 8b7d865d22..56f1fb4cad 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java @@ -1,5 +1,6 @@ package com.fr.design.actions.replace.ui; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.svg.IconUtils; import com.fr.design.actions.replace.action.setting.SettingContent; import com.fr.design.actions.replace.action.setting.SettingController; @@ -7,7 +8,6 @@ import com.fr.design.data.datapane.TableDataComboBox; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; -import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.i18n.Toolkit; @@ -15,15 +15,12 @@ import com.fr.general.GeneralUtils; import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; import javax.swing.ComboBoxEditor; import javax.swing.Icon; import javax.swing.JPanel; -import javax.swing.ScrollPaneConstants; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; import java.awt.CardLayout; -import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; @@ -32,6 +29,11 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 上面板 * @@ -55,8 +57,8 @@ public class ITReplaceNorthPanel { private UILabel iconLabel; private UIComboBox findInputCombobox; private UIComboBox replaceInputCombobox; - private UIScrollPane contentScrollPane; - private UIScrollPane settingScrollPane; + private JPanel contentScrollPane; + private JPanel settingScrollPane; private UIButton replaceButton; private UIButton searchButton; @@ -157,6 +159,7 @@ public class ITReplaceNorthPanel { public ITReplaceNorthPanel() { cardLayout = new CardLayout(); cardPanel = new JPanel(cardLayout); + cardPanel.setBorder(new ScaledEmptyBorder(20, 20, 20, 20)); upContentPanel = new JPanel(null); upSettingPanel = new JPanel(null); @@ -191,6 +194,12 @@ public class ITReplaceNorthPanel { super.setEditor(new ITComboBoxEditor()); } }; + initButton(); + initUpContentPanel(); + contentScrollPane = cell(upContentPanel).getComponent(); + } + + private void initButton() { matchRadioButton = new UICheckBox(Toolkit.i18nText("Fine-Design_Replace_WildCard")); matchRadioButton.addActionListener(new ActionListener() { @Override @@ -198,23 +207,22 @@ public class ITReplaceNorthPanel { ITReplaceMainDialog.setMatched(matchRadioButton.isSelected()); } }); - replaceButton = new UIButton(Toolkit.i18nText("Fine-Design_Replace_Button")); searchButton = new UIButton(Toolkit.i18nText("Fine-Design_Search_Button")); - upContentPanel.setPreferredSize(new Dimension(LIMIT_WIDTH, HEIGHT)); - contentScrollPane = new UIScrollPane(upContentPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - upContentPanel.add(findLabel); - upContentPanel.add(rangeLabel); - upContentPanel.add(resultLabel); - upContentPanel.add(findCombobox); - upContentPanel.add(rangeCombobox); - upContentPanel.add(findInputCombobox); - upContentPanel.add(replaceInputCombobox); - upContentPanel.add(matchRadioButton); - upContentPanel.add(replaceButton); - upContentPanel.add(searchButton); - upContentPanel.add(iconLabel); - contentScrollPane.setBorder(BorderFactory.createEmptyBorder()); + } + + private void initUpContentPanel() { + upContentPanel = column(10, + row(row(cell(findLabel).weight(0.1), cell(findCombobox).weight(0.5)).weight(0.45), flex(0.1), + row(cell(rangeLabel).weight(0.1), cell(rangeCombobox).weight(0.5)).weight(0.45) + ), + row(cell(findInputCombobox).weight(0.45), + row(flex(0.2), cell(iconLabel).weight(0.6), flex(0.2)).weight(0.1), + cell(replaceInputCombobox).weight(0.45) + ), + cell(matchRadioButton), + row(5, row(cell(resultLabel)), flex(), row(5, cell(searchButton), cell(replaceButton))) + ).getComponent(); } /** @@ -224,6 +232,19 @@ public class ITReplaceNorthPanel { findSettingLabel = new UILabel(Toolkit.i18nText("Fine-Design_Replace_Search_Element")); rangeSettingLabel = new UILabel(Toolkit.i18nText("Fine-Design_Replace_Search_Range")); settingResultLabel = new UILabel(); + initComboBox(); + updateSettingPlaceholder(SettingContent.CELL_FORMAT_NAME); + + iconSettingLabel = new UILabel(CHANGE_ICON); + searchSettingButton = new UIButton(Toolkit.i18nText("Fine-Design_Search_Button")); + replaceSettingButton = new UIButton(Toolkit.i18nText("Fine-Design_Replace_Button")); + replaceSettingButton.setEnabled(false); + initUpSettingPanel(); + settingScrollPane = cell(upSettingPanel).getComponent(); + initListener(); + + } + private void initComboBox() { findSettingComboBox = new UIComboBox(findSettingItems.toArray()); rangeSettingComboBox = new UIComboBox(RANGE_ITEMS); findSettingInputComboBox = new UIComboBox(formatItems.toArray()) { @@ -241,40 +262,100 @@ public class ITReplaceNorthPanel { }; replaceSettingInputComboBox.setSelectedIndex(-1); - updateSettingPlaceholder(SettingContent.CELL_FORMAT_NAME); findSettingInputComboBox.setEditable(true); ((UITextField) (findSettingInputComboBox.getEditor().getEditorComponent())).setEditable(false); replaceSettingInputComboBox.setEditable(true); ((UITextField) (replaceSettingInputComboBox.getEditor().getEditorComponent())).setEditable(false); - - iconSettingLabel = new UILabel(CHANGE_ICON); findExtraSettingComboBox = new UIComboBox(groupItems.toArray()); findExtraSettingComboBox.setVisible(false); replaceExtraSettingComboBox = new UIComboBox(groupItems.toArray()); replaceExtraSettingComboBox.setVisible(false); - searchSettingButton = new UIButton(Toolkit.i18nText("Fine-Design_Search_Button")); - replaceSettingButton = new UIButton(Toolkit.i18nText("Fine-Design_Replace_Button")); - - replaceSettingButton.setEnabled(false); - upSettingPanel.setPreferredSize(new Dimension(LIMIT_WIDTH, HEIGHT)); - upSettingPanel.add(findSettingLabel); - upSettingPanel.add(rangeSettingLabel); - upSettingPanel.add(findSettingComboBox); - upSettingPanel.add(rangeSettingComboBox); - upSettingPanel.add(findSettingInputComboBox); - upSettingPanel.add(replaceSettingInputComboBox); - upSettingPanel.add(iconSettingLabel); - upSettingPanel.add(findExtraSettingComboBox); - upSettingPanel.add(replaceExtraSettingComboBox); - upSettingPanel.add(searchSettingButton); - upSettingPanel.add(replaceSettingButton); - upSettingPanel.add(settingResultLabel); - settingScrollPane = new UIScrollPane(upSettingPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - settingScrollPane.setBorder(BorderFactory.createEmptyBorder()); + } - initListener(); + private void initUpSettingPanel() { + upSettingPanel = column(10, + cell(buildFirstLine()), + cell(buildSecondLine()), + row( + cell(findExtraSettingComboBox).weight(0.45), + flex(0.1), + cell(replaceExtraSettingComboBox).weight(0.45) + ), + row( + 5, + row(cell(settingResultLabel)), + flex(), + row( + 5, + cell(searchSettingButton), + cell(replaceSettingButton) + ) + ) + ).getComponent(); + } + + private JPanel buildFirstLine() { + return row( + row( + 5, + cell(findSettingLabel).weight(0.1), + cell(findSettingComboBox).weight(0.5) + ).weight(0.45), + flex(0.1), + row( + 5, + cell(rangeSettingLabel).weight(0.1), + cell(rangeSettingComboBox).weight(0.5) + ).weight(0.45)).getComponent(); + } + + private JPanel buildSecondLine() { + return row( + cell(findSettingInputComboBox).weight(0.45), + row( + flex(0.2), + cell(iconSettingLabel).weight(0.6), + flex(0.2) + ).weight(0.1), + cell(replaceSettingInputComboBox).weight(0.45) + ).getComponent(); + } + /** + * 根据是否支持查找和替换,重绘面板 + * @param find 查找 + * @param replace 替换 + */ + public void repaintThirdPanel(boolean find, boolean replace) { + if (find && replace) { + settingScrollPane.remove(settingScrollPane.getComponent(2)); + settingScrollPane.add(row( + cell(findExtraSettingComboBox).weight(0.45), + flex(0.1), + cell(replaceExtraSettingComboBox).weight(0.45) + ).getComponent(), 2); + settingScrollPane.revalidate(); + settingScrollPane.repaint(); + } + if (!find && replace) { + settingScrollPane.remove(settingScrollPane.getComponent(2)); + settingScrollPane.add(row( + flex(0.55), + cell(replaceExtraSettingComboBox).weight(0.45) + ).getComponent(), 2); + settingScrollPane.revalidate(); + settingScrollPane.repaint(); + } + if (find && !replace) { + settingScrollPane.remove(settingScrollPane.getComponent(2)); + settingScrollPane.add(row( + cell(findExtraSettingComboBox).weight(0.45), + flex(0.55) + ).getComponent(), 2); + settingScrollPane.revalidate(); + settingScrollPane.repaint(); + } } /** @@ -413,6 +494,7 @@ public class ITReplaceNorthPanel { } else { extraComboBox.setVisible(false); } + ITReplaceMainDialog.getInstance().getNorthPane().repaintThirdPanel(findExtraSettingComboBox.isVisible(), replaceExtraSettingComboBox.isVisible()); refreshSettingReplaceButtonStatus(); } @@ -544,15 +626,6 @@ public class ITReplaceNorthPanel { } } - - public UIScrollPane getContentScrollPane() { - return contentScrollPane; - } - - public void setContentScrollPane(UIScrollPane contentScrollPane) { - this.contentScrollPane = contentScrollPane; - } - private void setIconLabelBounds() { iconX = inputLength + GAP; iconY = SECOND_Y; diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java index 57b81077dd..a549c0fa5e 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java @@ -33,8 +33,6 @@ public class ITReplaceSouthPanel { } }; tableEditorPane.getEditTable().setRowSorter(sorter); - tableEditorPane.getEditTable().setBorder(BorderFactory.createEmptyBorder()); - tableEditorPane.getEditTable().setSelectionBackground(new Color(217, 235, 254)); tableEditorPane.getEditTable().setRowHeight(tableEditorPane.getEditTable().getRowHeight() / 2 + tableEditorPane.getEditTable().getRowHeight()); tableEditorPane.makeFace(tableEditorPane.getEditTable()); } diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java index c4914c9622..cbc9626521 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceWestPanel.java @@ -22,6 +22,10 @@ import java.awt.GridLayout; import java.awt.event.MouseEvent; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 左侧面板 * @@ -46,7 +50,7 @@ public class ITReplaceWestPanel { */ private static final String PROPS_LINK_KEY_DEFAULT = "Fine-Design-CloudCenter_Template_Level_Search_Replace_Default"; private static final String HELP_URL = LocaleLinkProvider.getInstance().getLink(PROPS_LINK_KEY, PROPS_LINK_KEY_DEFAULT); - private static final int FILL_COUNT = 11; + private static final int FILL_COUNT = 12; public static final int LEFT_WIDTH = 100; public static final String CONTENT_TEXT = "" + Toolkit.i18nText("Fine-Design_Basic_Templates_Content") + ""; public static final String SETTING_TEXT = "" + Toolkit.i18nText("Fine-Design_Replace_Setting") + ""; @@ -58,6 +62,8 @@ public class ITReplaceWestPanel { contentButton = new UIToggleButton(Toolkit.i18nText("Fine-Design_Basic_Templates_Content")); settingButton = new UIToggleButton(Toolkit.i18nText("Fine-Design_Replace_Setting")); + contentButton.setHorizontalAlignment(SwingConstants.LEFT); + settingButton.setHorizontalAlignment(SwingConstants.LEFT); contentButton.setText(CONTENT_TEXT); contentButton.addChangeListener(new ChangeListener() { @Override @@ -90,8 +96,16 @@ public class ITReplaceWestPanel { //去除按钮的边框 contentButton.setBorderPainted(false); settingButton.setBorderPainted(false); - leftPanel.add(contentButton); - leftPanel.add(settingButton); + leftPanel.add(row( + flex(0.07), + cell(contentButton).weight(1.0), + flex(0.07) + ).getComponent()); + leftPanel.add(row( + flex(0.07), + cell(settingButton).weight(1.0), + flex(0.07) + ).getComponent()); leftPanel.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, new Color(218, 218, 221))); //填充一下面板 for (int i = 0; i < FILL_COUNT; i++) { @@ -100,7 +114,7 @@ public class ITReplaceWestPanel { //添加帮助文档按钮及超链 iconLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Replace_Tooltip")); - iconLabel.setHorizontalAlignment(SwingConstants.CENTER); + iconLabel.setHorizontalAlignment(SwingConstants.LEFT); //设置游标 iconLabel.setCursor(new Cursor(Cursor.HAND_CURSOR)); iconLabel.addMouseListener(new MouseClickListener() { @@ -109,8 +123,11 @@ public class ITReplaceWestPanel { BrowseUtils.browser(HELP_URL); } }); - leftPanel.add(iconLabel); - leftPanel.add(new UILabel(StringUtils.EMPTY)); + leftPanel.add(row( + flex(0.23), + cell(iconLabel).weight(1.0), + flex(0.07) + ).getComponent()); } public JPanel getLeftPanel() { diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java index 5cee5af04f..a84faf432c 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java @@ -1,5 +1,6 @@ package com.fr.design.actions.replace.ui; +import com.fine.theme.icon.LazyIcon; import com.fr.base.TRL; import com.fr.design.actions.replace.info.base.ITContent; import com.fr.design.file.HistoryTemplateListCache; @@ -14,7 +15,9 @@ import com.fr.stable.StringUtils; import javax.swing.AbstractCellEditor; +import javax.swing.BorderFactory; import javax.swing.JTable; +import javax.swing.UIManager; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import java.awt.Component; @@ -35,9 +38,10 @@ public class ITTableButton extends AbstractCellEditor implements TableCellEditor private UIButton paraButton; public ITTableButton() { - paraButton = new UIButton("" + Toolkit.i18nText("Fine-Design_Chart_Location") + " "); + paraButton = new UIButton(); paraButton.setVisible(true); - paraButton.setBorderPainted(false); + paraButton.setBorderPainted(true); + paraButton.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor"))); } @@ -72,7 +76,11 @@ public class ITTableButton extends AbstractCellEditor implements TableCellEditor @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { ITContent content = (ITContent) table.getValueAt(row, ITReplaceSouthPanel.CONTENT_INDEX); - paraButton.setEnabled(content.isJumpAble()); + if (content.isJumpAble()) { + paraButton.setIcon(new LazyIcon("locate")); + } else { + paraButton.setIcon(new LazyIcon("locate_disable")); + } return paraButton; } diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java index d805d430ee..23c3d99ac3 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java @@ -1,5 +1,7 @@ package com.fr.design.actions.replace.ui; +import com.formdev.flatlaf.ui.FlatUIUtils; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.actions.replace.info.Info; import com.fr.design.actions.replace.info.base.ITContent; @@ -15,9 +17,12 @@ import org.jetbrains.annotations.Nullable; import javax.swing.BorderFactory; import javax.swing.DefaultCellEditor; +import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JTable; +import javax.swing.UIManager; import javax.swing.plaf.UIResource; +import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import java.awt.Color; import java.awt.Component; @@ -56,13 +61,28 @@ public class ITTableEditor extends UITableModelAdapter { ITTableButton.class, }); + + DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + ((JComponent) c).setBorder(BorderFactory.createCompoundBorder( + BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor")), + new ScaledEmptyBorder(0,4,0,0))); + c.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); + return c; + } + }; + + this.setDefaultRenderer(UILabel.class, cellRenderer); this.setDefaultEditor(ITTableButton.class, new ITTableButton()); this.setDefaultRenderer(ITTableButton.class, new ITTableButton()); this.setDefaultEditor(Boolean.class, new ITBooleanEditor()); this.setDefaultRenderer(Boolean.class, new ITBooleanRenderer()); this.createTable().getColumnModel().getColumn(ITReplaceSouthPanel.CONTENT_INDEX).setMaxWidth(50); - this.createTable().getColumnModel().getColumn(ITReplaceSouthPanel.CHECKBOX_INDEX).setMaxWidth(50); + this.createTable().getColumnModel().getColumn(ITReplaceSouthPanel.CHECKBOX_INDEX).setMaxWidth(28); + this.createTable().getColumnModel().getColumn(ITReplaceSouthPanel.CHECKBOX_INDEX).setCellRenderer(new ITBooleanRenderer()); } @@ -263,7 +283,7 @@ public class ITTableEditor extends UITableModelAdapter { setEnabled(!content.isReplaced()); setSelected((value != null && ((Boolean) value).booleanValue())); setUI(getUICheckBoxUI()); - setBorder(BorderFactory.createEmptyBorder()); + setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); setBackground(Color.WHITE); return this; } diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java index ef32da98d6..4029fefe9d 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java @@ -1,5 +1,7 @@ package com.fr.design.actions.replace.ui; +import com.fine.theme.icon.LazyIcon; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.base.TRL; import com.fr.design.actions.replace.info.base.ITContent; import com.fr.design.border.UIRoundedBorder; @@ -23,6 +25,7 @@ import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTable; +import javax.swing.SortOrder; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.table.JTableHeader; @@ -52,7 +55,6 @@ public class ITTableEditorPane extends BasicPane { public ITTableEditorPane(UITableModelAdapter model) { this.tableModel = model; this.initComponent(model.createAction()); - editTable.setGridColor(new Color(218, 218, 221)); } @@ -64,11 +66,7 @@ public class ITTableEditorPane extends BasicPane { */ private void initComponent(UITableEditAction[] action) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel pane = new JPanel(new BorderLayout(4, 4)); - this.add(pane, BorderLayout.CENTER); - UILabel l = new UILabel(leftLabelName); editTable = tableModel.createTable(); - editTable.getTableHeader().setBackground(UIConstants.DEFAULT_BG_RULER); editTable.addMouseListener(new MouseClickListener() { @Override public void mouseClicked(MouseEvent e) { @@ -94,7 +92,7 @@ public class ITTableEditorPane extends BasicPane { }); UIScrollPane scrollPane = new UIScrollPane(editTable); scrollPane.setBorder(new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, UIConstants.ARC)); - pane.add(scrollPane, BorderLayout.CENTER); + this.add(scrollPane, BorderLayout.CENTER); } /** @@ -143,6 +141,7 @@ public class ITTableEditorPane extends BasicPane { public static class ITHeaderRenderer implements TableCellRenderer { JTableHeader tableHeader; final UICheckBox selectBox; + private boolean ascSort = true; public ITHeaderRenderer(JTable table) { this.tableHeader = table.getTableHeader(); @@ -155,15 +154,17 @@ public class ITTableEditorPane extends BasicPane { int selectColumn = tableHeader.columnAtPoint(e.getPoint()); if (selectColumn == ITReplaceSouthPanel.CHECKBOX_INDEX) { boolean value = !selectBox.isSelected(); - selectBox.setSelected(value); selectAllOrNull(value); if (value) { ITReplaceMainDialog.selectCount = getEditTable().getRowCount(); } else { ITReplaceMainDialog.selectCount = 0; } + setHeaderStatus(value); tableHeader.repaint(); table.repaint(); + } else if (selectColumn != ITReplaceSouthPanel.CONTENT_INDEX) { + ascSort = table.getRowSorter().getSortKeys().get(0).getSortOrder() == SortOrder.ASCENDING; } } } @@ -175,13 +176,27 @@ public class ITTableEditorPane extends BasicPane { * * @param table */ - public void refreshHeader(JTable table, boolean value) { - selectBox.setSelected(value); + public void refreshHeader(JTable table, boolean isAllSelected) { + setHeaderStatus(isAllSelected); int rowHeight = table.getRowHeight(); table.updateUI(); table.setRowHeight(rowHeight); } + public void setHeaderStatus(boolean isAllSelected) { + if (isAllSelected) { + selectBox.setSelected(true); + selectBox.setSelectedIcon(new LazyIcon("checkbox_checked")); + } else if (ITReplaceMainDialog.selectCount > 0 && ITReplaceMainDialog.selectCount < editTable.getRowCount()) { + selectBox.setSelected(true); + selectBox.setSelectedIcon(new LazyIcon("checkbox_part_checked")); + } else { + selectBox.setSelected(false); + selectBox.setSelectedIcon(new LazyIcon("checkbox_unchecked")); + } + } + + @Override public Component getTableCellRendererComponent(JTable table, Object value, @@ -195,6 +210,15 @@ public class ITTableEditorPane extends BasicPane { label.setHorizontalAlignment(SwingConstants.LEFT); selectBox.setHorizontalAlignment(SwingConstants.CENTER); selectBox.setBorderPainted(true); + if (column != ITReplaceSouthPanel.CHECKBOX_INDEX && column != ITReplaceSouthPanel.CONTENT_INDEX) { + if (ascSort) { + label.setIcon(new LazyIcon("sort_asc")); + } else { + label.setIcon(new LazyIcon("sort_desc")); + } + } + label.setIconTextGap(5); + label.setHorizontalTextPosition(JLabel.LEFT); JComponent component = (column == ITReplaceSouthPanel.CHECKBOX_INDEX) ? selectBox : label; component.setForeground(tableHeader.getForeground()); component.setBackground(tableHeader.getBackground()); @@ -216,7 +240,7 @@ public class ITTableEditorPane extends BasicPane { Dimension size = table.getTableHeader().getPreferredSize(); size.height = 26;//设置新的表头高度 - table.getTableHeader().setBackground(new Color(232, 232, 233)); + table.getTableHeader().setBackground(FlatUIUtils.getUIColor("TableHeader.background", Color.WHITE)); table.getTableHeader().setPreferredSize(size); diff --git a/designer-realize/src/main/java/com/fr/design/condition/BackPane.java b/designer-realize/src/main/java/com/fr/design/condition/BackPane.java index 5187c1f322..08a26b9de5 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/BackPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/BackPane.java @@ -16,6 +16,9 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * @author richie * @date 2015-03-26 @@ -50,12 +53,16 @@ public class BackPane extends ConditionAttrSingleConditionPane com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Cell"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Row"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Column") }); - - this.add(backgroundLabel); - this.add(backgroundPreviewPane); - this.add(editBackgroundButton); - this.add(this.backScopeComboBox); this.backgroundPreviewPane.setBackgroundObject(ColorBackground.getInstance(Color.WHITE)); + backgroundLabel.setPreferredSize(new Dimension(100, backgroundLabel.getHeight())); + + this.add(row(10, cell(backgroundLabel), row( + 10, + cell(backgroundPreviewPane), + cell(editBackgroundButton), + cell(backScopeComboBox), + cell(cancel)) + ).getComponent()); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/condition/BorderHighlightPane.java b/designer-realize/src/main/java/com/fr/design/condition/BorderHighlightPane.java index f2d006c546..4877c87c39 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/BorderHighlightPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/BorderHighlightPane.java @@ -16,6 +16,9 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * @author richie * @date 2015-03-26 @@ -47,9 +50,15 @@ public class BorderHighlightPane extends ConditionAttrSingleConditionPane com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Cell"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Row"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Column") }); - - this.add(fontLabel); - this.add(frFontPreviewPane); - this.add(editFRFontButton); - this.add(this.fontScopeComboBox); this.frFontPreviewPane.setFontObject(DesignUtils.getDefaultGUIFont()); + + fontLabel.setPreferredSize(new Dimension(100, fontLabel.getHeight())); + + this.add(row(10, cell(fontLabel), row( + 10, + cell(frFontPreviewPane), + cell(editFRFontButton), + cell(fontScopeComboBox), + cell(cancel)) + ).getComponent()); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java b/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java index c27854b3de..c00d761b25 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java @@ -9,6 +9,9 @@ import com.fr.report.cell.cellattr.highlight.HighlightAction; import java.awt.*; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * @author richie * @date 2015-03-26 @@ -23,15 +26,21 @@ public class ForeGroundPane extends ConditionAttrSingleConditionPane public PagePane(ConditionAttributesPane conditionAttributesPane) { super(conditionAttributesPane); pageLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Pagination") + ":"); - this.add(pageLabel); this.pageComboBox = new UIComboBox(new String[] { com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_No_Pagination"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_After_Row"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_Before_Row"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_After_Column"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_Before_Column") }); - this.add(this.pageComboBox); this.pageComboBox.setSelectedIndex(0); + + pageLabel.setPreferredSize(new Dimension(100, pageLabel.getHeight())); + + this.add(row(10, cell(pageLabel), row( + 10, + cell(pageComboBox), + cell(cancel)) + ).getComponent()); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/condition/PresentHighlightPane.java b/designer-realize/src/main/java/com/fr/design/condition/PresentHighlightPane.java index 6961b06c13..51e02a86d3 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/PresentHighlightPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/PresentHighlightPane.java @@ -15,11 +15,15 @@ import com.fr.report.cell.cellattr.highlight.HighlightAction; import com.fr.report.cell.cellattr.highlight.PresentHighlightAction; import javax.swing.*; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * @author richie * @date 2015-03-26 @@ -33,11 +37,10 @@ public class PresentHighlightPane extends ConditionAttrSingleConditionPane it.setBorder(new ScaledEmptyBorder(10,10,10,10))).getComponent(); + this.add(centerPane, BorderLayout.CENTER); + } + private JToolBar createToolbar() { //toolbar. JToolBar toolbar = new JToolBar(); toolbar.setFloatable(false); - Dimension separatorDimension = new Dimension(6, 18);//Separator分隔线 - - toolbar.add(this.createHFInsertButton(new TextHFElement())); - toolbar.add(this.createHFInsertButton(new FormulaHFElement())); - toolbar.addSeparator(separatorDimension); - toolbar.add(this.createHFInsertButton(new PageNumberHFElement())); - toolbar.add(this.createHFInsertButton(new NumberOfPageHFElement())); - toolbar.addSeparator(separatorDimension); - toolbar.add(this.createHFInsertButton(new DateHFElement())); - toolbar.add(this.createHFInsertButton(new TimeHFElement())); - toolbar.addSeparator(separatorDimension); - toolbar.add(this.createHFInsertButton(new ImageHFElement())); - toolbar.add(this.createHFInsertButton(new NewLineHFElement())); - toolbar.addSeparator(separatorDimension); UIButton customBackgroundButton = new UIButton(); customBackgroundButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background")); customBackgroundButton.set4ToolbarButton(); - customBackgroundButton.setIcon(BaseUtils.readIcon("/com/fr/base/images/dialog/headerfooter/background.png")); - toolbar.add(customBackgroundButton); + customBackgroundButton.setIcon(new LazyIcon("background")); customBackgroundButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { final BackgroundPane backgroundPane = new BackgroundPane(); @@ -178,9 +172,6 @@ public class HeaderFooterEditPane extends JPanel { } }); printBackgroundCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportGUI_Print_Background")); - toolbar.add(printBackgroundCheckBox); - - toolbar.addSeparator(separatorDimension); JPanel headerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); headerUnitFieldPane = new AdjustHeightPane(); @@ -195,12 +186,69 @@ public class HeaderFooterEditPane extends JPanel { JPanel headerFooterPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); headFootUnitFieldPane = new AdjustHeightPane(); headerFooterPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Height") + ":")); - headerFooterPane.add(headFootUnitFieldPane); - - toolbar.add(headerFooterPane); + headerFooterPane.add(headFootUnitFieldPane); + + iconToolPanel = row( + 6, + cell(this.createHFInsertButton(new TextHFElement())), + cell(this.createHFInsertButton(new FormulaHFElement())), + cell(this.createHFInsertButton(new PageNumberHFElement())), + cell(this.createHFInsertButton(new NumberOfPageHFElement())), + cell(this.createHFInsertButton(new DateHFElement())), + cell(this.createHFInsertButton(new TimeHFElement())), + cell(this.createHFInsertButton(new ImageHFElement())), + cell(this.createHFInsertButton(new NewLineHFElement())), + cell(customBackgroundButton), + cell(printBackgroundCheckBox), + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Height") + ":")), + cell(headFootUnitFieldPane) + ).with(it -> it.setBorder(new ScaledEmptyBorder(2,0,2,0))) + ).getComponent(); + toolbar.add(iconToolPanel); return toolbar; } + /** + * icon 置灰 + */ + public void disableIconToolPanel() { + if (iconToolPanel == null) { + return; + } + for (int i = 0; i < iconToolPanel.getComponentCount(); i++) { + Component component = iconToolPanel.getComponent(i); + if (!(component instanceof UIButton)) { + continue; + } + UIButton button = ((UIButton) component); + if (button.getIcon() instanceof LazyIcon) { + LazyIcon icon = ((LazyIcon) button.getIcon());; + button.setIcon(icon.disabled()); + } + } + } + + /** + * icon 取消置灰 + */ + public void enableIconToolPanel() { + if (iconToolPanel == null) { + return; + } + for (int i = 0; i < iconToolPanel.getComponentCount(); i++) { + Component component = iconToolPanel.getComponent(i); + if (!(component instanceof UIButton)) { + continue; + } + UIButton button = ((UIButton) component); + if (button.getIcon() instanceof LazyIcon) { + String iconId = ((LazyIcon) button.getIcon()).getId(); + button.setIcon(new LazyIcon(iconId)); + } + } + } + /** * Create HFInsertButton. diff --git a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java b/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java index a0275ddd87..44730fa268 100644 --- a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java +++ b/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java @@ -3,6 +3,8 @@ */ package com.fr.design.headerfooter; +import com.fine.theme.icon.LazyIcon; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.base.BaseUtils; import com.fr.base.PaperSize; import com.fr.base.ScreenResolution; @@ -53,6 +55,7 @@ public abstract class HeaderFooterPane extends BasicPane { reportHFYypeList.setCellRenderer(reportPageTypeRenderer); reportHFYypeList .addListSelectionListener(reportHFTypeSelectionListener); + reportHFYypeList.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); JScrollPane hfTypeListScrollPane = new JScrollPane(reportHFYypeList); leftPane.add(hfTypeListScrollPane, BorderLayout.CENTER); @@ -74,7 +77,7 @@ public abstract class HeaderFooterPane extends BasicPane { JPanel definePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); centerPane.add(definePane, BorderLayout.NORTH); - defineCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_HF_Whether_To_Define_The_Selected_Type"), true); + defineCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_HF_Whether_To_Define_The_Selected_Type"), true); //是否定义选中的类型 definePane.add(defineCheckBox); defineCheckBox.addChangeListener(defineChangeListener); @@ -133,9 +136,11 @@ public abstract class HeaderFooterPane extends BasicPane { GUICoreUtils.setEnabled(headerFooterEditPane, true); reportHFHash.put(currentReportHFType, headerFooterEditPane.update()); + headerFooterEditPane.enableIconToolPanel(); } else { GUICoreUtils.setEnabled(headerFooterEditPane, false); reportHFHash.remove(new Integer(currentReportHFType)); + headerFooterEditPane.disableIconToolPanel(); } reportHFYypeList.repaint(); @@ -198,9 +203,7 @@ public abstract class HeaderFooterPane extends BasicPane { if (value != null && value instanceof Integer) { int reportHFType = (Integer) value; - this - .setIcon(BaseUtils - .readIcon("/com/fr/base/images/oem/logo.png")); + this.setIcon(new LazyIcon("logo")); if (reportHFType == ReportConstants.REPORTPAGE_DEFAULT) { this.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Default_Page")); } else if (reportHFType == ReportConstants.REPORTPAGE_FIRST) { @@ -216,7 +219,7 @@ public abstract class HeaderFooterPane extends BasicPane { if (reportHFHash != null) { Object obj = reportHFHash.get(new Integer(reportHFType)); if (obj == null) { - this.setEnabled(false); + this.setIcon(new LazyIcon("logo").disabled()); } } } diff --git a/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java b/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java index 02d46c82aa..65ff1a1e84 100644 --- a/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java +++ b/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java @@ -3,9 +3,13 @@ */ package com.fr.design.headerfooter; +import com.fine.theme.light.ui.FineRoundBorder; +import com.formdev.flatlaf.ui.FlatUIUtils; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.frpane.ImgChooseWrapper; import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.style.background.image.ImageFileChooser; import com.fr.design.style.background.image.ImagePreviewPane; @@ -15,10 +19,16 @@ import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.JScrollPane; import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; + /** * Image Pane. */ @@ -34,27 +44,17 @@ public class ImagePane extends BasicPane { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); //preview pane. - JPanel previewPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(previewPane); - -// previewPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - if (hasPreviewBorder) { - previewPane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))); - } - + JPanel previewPane = new JPanel(new BorderLayout()); imagePreviewPane = new ImagePreviewPane(); previewPane.add(new JScrollPane(imagePreviewPane)); + previewPane.setBorder(new FineRoundBorder()); + previewPane.setPreferredSize(new Dimension(500, 400)); + previewPane.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); + + //select image JPanel rightPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.add(rightPane, BorderLayout.EAST); - -// rightPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - if (hasPreviewBorder) { - rightPane.setBorder(BorderFactory.createEmptyBorder(8, 2, 0, 2)); - } else { - rightPane.setBorder(BorderFactory.createEmptyBorder(4, 2, 0, 2)); - } UIButton selectImageButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Image_Select_Picture")); rightPane.add(selectImageButton, BorderLayout.NORTH); selectImageButton.addActionListener(selectPictureActionListener); @@ -62,6 +62,16 @@ public class ImagePane extends BasicPane { //init image file chooser. imageFileChooser = new ImageFileChooser(); imageFileChooser.setMultiSelectionEnabled(false); + + this.add(column( + 3, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))), + row( + 10, + cell(previewPane).weight(0.9), + cell(rightPane).weight(0.2) + ) + ).with(it -> it.setBorder(new ScaledEmptyBorder(10,10,10,10))).getComponent()); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/AuthorityToolBarPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/AuthorityToolBarPane.java index 5eb1de3664..6a47ee48c3 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/AuthorityToolBarPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/AuthorityToolBarPane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.common.inputevent.InputEventBaseOnOS; import com.fr.design.beans.BasicBeanPane; import com.fr.design.file.HistoryTemplateListPane; @@ -24,10 +25,10 @@ import com.fr.web.attr.ReportWebAttr; import com.fr.workspace.WorkContext; import javax.swing.BorderFactory; -import javax.swing.JPanel; import javax.swing.SwingConstants; +import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseAdapter; @@ -35,6 +36,9 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; + /** * Author : daisy * Date: 13-9-9 @@ -129,11 +133,11 @@ public class AuthorityToolBarPane extends BasicBeanPane extends BasicBeanPane extends BasicBeanPane" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": A2:D5 " + "")).weight(0.15), + flex(0.4) + ), + row( + 10, + cell(copyLabel).weight(0.12), + cell(copyTitleTextField).weight(0.33), + cell(new UILabel("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": 1,2-3,5,18" + "")).weight(0.15), + flex(0.4) + ) + ).getComponent(); + + return column( + cell(wrapComponentWithTitle(colPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Area"))) + ).getComponent(); } /** diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java index a946b63b16..83848152b1 100644 --- a/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/freeze/FreezeAndRepeatPane.java @@ -26,7 +26,7 @@ public abstract class FreezeAndRepeatPane extends BasicBeanPane { protected boolean isEnalbed; protected void initComponent() { - Dimension size = new Dimension(43, 21); + Dimension size = new Dimension(50, 21); if (start instanceof UISpinner) { start.setPreferredSize(size); ((UISpinner) start).addChangeListener(new ChangeListener() { diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 0d5ca8de7f..efd9dc18e6 100644 --- a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -4,6 +4,7 @@ import com.fr.base.FRContext; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.extra.WebViewDlgHelper; +import com.fr.design.gui.frpane.FineTabbedPane; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.ActionLabel; @@ -24,6 +25,9 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.*; +import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; + /** * Sets Report Page Attributes */ @@ -33,7 +37,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane { private static final int LABEL_HEIGHT = 45; //tab - private UITabbedPane tabbedPane; + private FineTabbedPane tabbedPane; // 重复标题行 private RepeatRowPane repeatTitleRowPane; @@ -82,15 +86,16 @@ public class RepeatAndFreezeSettingPane extends BasicPane { * 重复标题行 */ private JPanel initRowStartPane() { - JPanel soverlapRowStartPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); useRepeatTitleRCheckBox = new UICheckBox(); - soverlapRowStartPane.add(useRepeatTitleRCheckBox); - soverlapRowStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Title_Start_Row_Form"))); repeatTitleRowPane = new RepeatRowPane(); - soverlapRowStartPane.add(repeatTitleRowPane); - soverlapRowStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Row"))); - return soverlapRowStartPane; + return row( + 2, + cell(useRepeatTitleRCheckBox), + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Title_Start_Row_Form"))), + cell(repeatTitleRowPane), + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Row"))) + ).getComponent(); } /** @@ -98,16 +103,49 @@ public class RepeatAndFreezeSettingPane extends BasicPane { */ private JPanel initColStartPane() { // 重复打印标题的起始列 - JPanel soverlapColStartPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); useRepeatTitleCCheckBox = new UICheckBox(); - soverlapColStartPane.add(useRepeatTitleCCheckBox); - soverlapColStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Title_Start_Column_Form"))); - // 重复打印标题的结束列 repeatTitleColPane = new RepeatColPane(); - soverlapColStartPane.add(repeatTitleColPane); - soverlapColStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column"))); - return soverlapColStartPane; + return row( + 2, + cell(useRepeatTitleCCheckBox), + cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Title_Start_Column_Form"))), + cell(repeatTitleColPane), + cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Column"))) + ).getComponent(); + } + + private JPanel initPageRepeatPane() { + return row( + 10, + column( + 10, + cell(new UILabel(REPEAT_AND_FROZEN_HEAD)).weight(0.5), + flex(0.5) + ), + column( + 10, + cell(initRowStartPane()).weight(0.5), + cell(initColStartPane()).weight(0.5) + ) + + ).getComponent(); + } + + private JPanel initPageRepeatFootPane() { + return row( + 10, + column( + 10, + cell(new UILabel(REPEAT_AND_FROZEN_FOOT)).weight(0.5), + flex(0.5) + ), + column( + 10, + cell(initFootRowStarPane()).weight(0.5), + cell(initFootColStartPane()).weight(0.5) + ) + ).getComponent(); } /** @@ -115,15 +153,16 @@ public class RepeatAndFreezeSettingPane extends BasicPane { */ private JPanel initFootRowStarPane() { // 重复打印结尾的起始行 - JPanel foverlapRowStartPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); useRepeatFinisRCheckBox = new UICheckBox(); - foverlapRowStartPane.add(useRepeatFinisRCheckBox); - foverlapRowStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Finis_Start_Row_Form"))); repeatFinisRowPane = new RepeatRowPane(); - foverlapRowStartPane.add(repeatFinisRowPane); - foverlapRowStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Row"))); - return foverlapRowStartPane; + return row( + 2, + cell(useRepeatFinisRCheckBox), + cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Finis_Start_Row_Form"))), + cell(repeatFinisRowPane), + cell(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Row"))) + ).getComponent(); } /** @@ -131,15 +170,16 @@ public class RepeatAndFreezeSettingPane extends BasicPane { */ private JPanel initFootColStartPane() { // 重复打印结尾的起始列 - JPanel foverlapColStartPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); useRepeatFinisCCheckBox = new UICheckBox(); - foverlapColStartPane.add(useRepeatFinisCCheckBox); - foverlapColStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Finis_Start_Column_Form"))); repeatFinisColPane = new RepeatColPane(); - foverlapColStartPane.add(repeatFinisColPane); - foverlapColStartPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column"))); - return foverlapColStartPane; + return row( + 2, + cell(useRepeatFinisCCheckBox), + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Finis_Start_Column_Form"))), + cell(repeatFinisColPane), + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column"))) + ).getComponent(); } /** @@ -157,37 +197,64 @@ public class RepeatAndFreezeSettingPane extends BasicPane { */ private JPanel initPageFrozenPane() { // 分页冻结 - JPanel pagecon = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - pagecon.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); - - JPanel pageRowGridPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - pageRowGridPane.add(this.usePageHeadFrozenRCheckBox = new UICheckBox()); + usePageHeadFrozenRCheckBox = new UICheckBox(); // 显示行冻结信息的panel freezePageRowPane = new FreezePagePane(true); - pageRowGridPane.add(freezePageRowPane); - pagecon.add(pageRowGridPane); - addPageFrozenCol(pagecon); - addBorder(pagecon, REPEAT_AND_FROZEN_HEAD); - return pagecon; + freezePageColPane = new FreezePagePane(false); + usePageHeadFrozenCCheckBox = new UICheckBox(); + + return row( + 10, + column( + 10, + cell(new UILabel(REPEAT_AND_FROZEN_HEAD)).weight(0.5), + flex(0.5) + ), + column( + 10, + row( + 2, + cell(usePageHeadFrozenRCheckBox), + cell(freezePageRowPane) + ).weight(0.5), + row( + 2, + cell(usePageHeadFrozenCCheckBox), + cell(freezePageColPane) + ).weight(0.5) + ) + ).getComponent(); } private JPanel initPageFrozenFootPane() { - JPanel pageContentPanel = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - pageContentPanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); // 行冻结 - JPanel pageRowPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - pageRowPane.add(this.usePageFootFrozenRCheckBox = new UICheckBox()); + usePageFootFrozenRCheckBox = new UICheckBox(); // 列冻结 - JPanel pageColPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - pageColPane.add(this.usePageFootFrozenCCheckBox = new UICheckBox()); - pageContentPanel.add(pageRowPane); + usePageFootFrozenCCheckBox = new UICheckBox(); freezeFootRowPane = new FreezePagePane(true, true); - pageRowPane.add(freezeFootRowPane); - pageContentPanel.add(pageColPane); freezeFootColPane = new FreezePagePane(false, true); - pageColPane.add(freezeFootColPane); - addBorder(pageContentPanel, REPEAT_AND_FROZEN_FOOT); - return pageContentPanel; + + return row( + 10, + column( + 10, + cell(new UILabel(REPEAT_AND_FROZEN_FOOT)).weight(0.5), + flex(0.5) + ), + column( + 10, + row( + 2, + cell(usePageFootFrozenRCheckBox), + cell(freezeFootRowPane) + ).weight(0.5), + row( + 2, + cell(usePageFootFrozenCCheckBox), + cell(freezeFootColPane) + ).weight(0.5) + ) + ).getComponent(); } @@ -207,49 +274,59 @@ public class RepeatAndFreezeSettingPane extends BasicPane { * 填报冻结Pane */ protected JPanel initWriteFrozenPane() { - JPanel writePanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); // 填报冻结 - UILabel writeLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Face_Write_Frozen") + ":"); - JPanel writeLabelPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - writeLabelPanel.add(writeLabel); - writePanel.add(writeLabelPanel, BorderLayout.NORTH); - JPanel writecon = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - writecon.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); - writePanel.add(writecon, BorderLayout.CENTER); - // 行冻结 - JPanel writeRowPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - writeRowPane.add(this.useWriteFrozenRCheckBox = new UICheckBox()); - // 列冻结 - JPanel writeColPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - writeColPane.add(this.useWriteFrozenCCheckBox = new UICheckBox()); - writecon.add(writeRowPane); + useWriteFrozenRCheckBox = new UICheckBox(); freezeWriteRowPane = new FreezeWriteRowPane(); - writeRowPane.add(freezeWriteRowPane); - writecon.add(writeColPane); + // 列冻结 + useWriteFrozenCCheckBox = new UICheckBox(); freezeWriteColPane = new FreezeWriteColPane(); - writeColPane.add(freezeWriteColPane); - return writePanel; + return row( + 10, + column( + 10, + cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Face_Write_Frozen"))).weight(0.5), + flex(0.5) + ), + column( + 10, + row( + 2, + cell(useWriteFrozenRCheckBox), + cell(freezeWriteRowPane) + ).weight(0.5), + row( + 2, + cell(useWriteFrozenCCheckBox), + cell(freezeWriteColPane) + ).weight(0.5) + ) + ).getComponent(); } public RepeatAndFreezeSettingPane() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel outrepeatPanel = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Repeat")); - JPanel cenrepeatPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); - outrepeatPanel.add(cenrepeatPanel); - JPanel outfreezePanel = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen")); - JPanel pagePanel = new JPanel(FRGUIPaneFactory.createBorderLayout()); - JPanel repeatHeadPanel = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - JPanel repeatFootPanel = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); - tabbedPane = new UITabbedPane(); - - //添加上方的边界线 - addBorder(repeatHeadPanel, REPEAT_AND_FROZEN_HEAD); - addBorder(repeatFootPanel, REPEAT_AND_FROZEN_FOOT); - - pagePanel.add(outrepeatPanel, BorderLayout.NORTH); - pagePanel.add(outfreezePanel, BorderLayout.CENTER); + this.setLayout(new BorderLayout()); + + JPanel outrepeatPanel = column( + 10, + cell(initPageRepeatPane()), + cell(initPageRepeatFootPane()) + ).getComponent(); + + JPanel outfreezePanel = column( + 10, + cell(initPageFrozenPane()), + cell(initPageFrozenFootPane()) + ).getComponent(); + + JPanel pagePanel = column( + 10, + fix(10), + cell(wrapComponentWithTitle(outrepeatPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Repeat"))), + cell(wrapComponentWithTitle(outfreezePanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen"))), + cell(new UILabel(""+ Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip") + "")) + ).getComponent(); // 重复打印部分 // 重复打印标题的起始行 @@ -258,31 +335,22 @@ public class RepeatAndFreezeSettingPane extends BasicPane { UILabel warning = new UILabel("(" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_FreezeWarning") + ")"); warning.setForeground(Color.red); labelPanel.add(warning); - cenrepeatPanel.add(repeatHeadPanel, BorderLayout.NORTH); - cenrepeatPanel.add(repeatFootPanel, BorderLayout.CENTER); - - repeatHeadPanel.add(initRowStartPane()); - addColStart(repeatHeadPanel); - repeatFootPanel.add(initFootRowStarPane()); - addFootColStart(repeatFootPanel); - - outfreezePanel.add(initPageFrozenPane(), BorderLayout.NORTH); - outfreezePanel.add(initPageFrozenFootPane(),BorderLayout.CENTER); - outfreezePanel.add(new UILabel(" "+ Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip") + ""),BorderLayout.SOUTH); - JPanel writePanel = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen")); + JPanel writeOutrepeatPanel = initWriteFrozenPane(); + JPanel writePanel = column( + 10, + fix(10), + cell(wrapComponentWithTitle(writeOutrepeatPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen"))) + ).getComponent(); addWriteFrozen(writePanel, pagePanel); - if (tabbedPane.getTabSize() == 0) { - this.add(pagePanel); - } initPageRwoListener(); initPageColListener(); initWriteListener(); } private boolean shouldShowTip() { - + return WorkContext.getCurrent().isLocal() && FRContext.isChineseEnv(); } @@ -320,9 +388,10 @@ public class RepeatAndFreezeSettingPane extends BasicPane { } protected void addWriteFrozen(JPanel freezePanel, JPanel pagePanel) { - freezePanel.add(initWriteFrozenPane(), BorderLayout.CENTER); - tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Page_Preview"), pagePanel); - tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Write_Preview"), freezePanel); + FineTabbedPane.TabPaneBuilder tabbedPaneBuilder = new FineTabbedPane.TabPaneBuilder(); + tabbedPaneBuilder.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Page_Preview"), pagePanel); //分页预览 + tabbedPaneBuilder.addTab(Toolkit.i18nText("Fine-Design_Basic_M_Write_Preview"), freezePanel); + tabbedPane = tabbedPaneBuilder.withHeadRatio(0.35f).build(); //去除对应的焦点虚线边框 tabbedPane.setFocusable(false); this.add(tabbedPane); From d97b7eef2619b35ad0b72c8eb605ba7eb7f8f218 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 29 Jul 2024 16:16:07 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=20REPORT-113994=20fix:=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E7=AD=96=E7=95=A5=E9=85=8D=E7=BD=AE=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E7=A9=BA=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/data/datapane/ESDStrategyConfigPane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java index bcec594978..1907aa58b6 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ESDStrategyConfigPane.java @@ -84,12 +84,12 @@ public class ESDStrategyConfigPane extends BasicBeanPane { this.updateIntervalCheckTips = new UILabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Error_Interval_Format")); this.updateIntervalCheckTips.setForeground(Color.RED); this.updateIntervalCheckTips.setVisible(false); - addListener(); this.selectBySchema = new UIRadioButton(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cron")); this.schemaTime = new UITextField(10); this.schemaTimeCheckTips = new UILabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Error_Time_Format")); this.schemaTimeCheckTips.setVisible(false); this.schemaTimeCheckTips.setForeground(Color.RED); + addListener(); addCenterPanel(); } @@ -113,7 +113,7 @@ public class ESDStrategyConfigPane extends BasicBeanPane { } }); - ActionLabel actionLabel = new ActionLabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cron_Help")); + actionLabel = new ActionLabel(InterProviderFactory.getDesignI18nProvider().i18nText("Fine-Design_ESD_Cron_Help")); actionLabel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { From 2bcb8161a81e786e408745ff9e6b6aac8afe107f Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 29 Jul 2024 16:45:02 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=20REPORT-113994=20fix:=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../condition/ConditionAttributesPane.java | 3 +- .../design/condition/FlowLayoutExample.java | 46 ------------------ .../itableeditorpane/UITableEditorPane.java | 4 +- .../background/impl/ImageBackgroundPane.java | 4 +- .../headerfooter/HeaderFooterEditPane.java | 47 +++++++++---------- .../freeze/RepeatAndFreezeSettingPane.java | 6 ++- 6 files changed, 34 insertions(+), 76 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java diff --git a/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java b/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java index 06fb8fcb86..e96edbdf07 100644 --- a/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java +++ b/designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java @@ -1,6 +1,7 @@ package com.fr.design.condition; +import com.fine.theme.icon.LazyIcon; import com.fine.theme.light.ui.FineRoundBorder; import com.fine.theme.utils.FineUIUtils; import com.formdev.flatlaf.ui.FlatUIUtils; @@ -54,7 +55,7 @@ public abstract class ConditionAttributesPane extends BasicBeanPane { menuDef = new CellHighlightAddMenuDef(); menuDef.setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Highlight_Click_to_Choose_Property_To_Modify")); - menuDef.setIconPath("com/fr/design/images/control/addPopup.png"); + menuDef.setIcon(new LazyIcon("add_popup")); toolbarDef.addShortCut(menuDef); diff --git a/designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java b/designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java deleted file mode 100644 index 3c0177f5d3..0000000000 --- a/designer-base/src/main/java/com/fr/design/condition/FlowLayoutExample.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.fr.design.condition; - -import javax.swing.*; -import java.awt.*; - -public class FlowLayoutExample { - public static void main(String[] args) { - JFrame frame = new JFrame("FlowLayout Example"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setSize(400, 300); - - // 创建一个主 JPanel 使用 BorderLayout - JPanel mainPanel = new JPanel(new BorderLayout()); - - // 创建一个居中面板 使用 FlowLayout 并设置为左对齐 - JPanel rowPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); - - // 添加一些组件到 rowPanel - rowPanel.add(new JButton("Button 1")); - rowPanel.add(new JButton("Button 2")); - rowPanel.add(new JButton("Button 3")); - - // 创建一个带有 GridBagLayout 的面板,用于垂直居中 rowPanel - JPanel centerPanel = new JPanel(new GridBagLayout()); - - // 设置 GridBagConstraints 以在垂直方向居中 rowPanel - GridBagConstraints gbc = new GridBagConstraints(); - gbc.gridx = 0; - gbc.gridy = 0; - gbc.weightx = 1; - gbc.weighty = 1; - gbc.anchor = GridBagConstraints.NORTH; - gbc.fill = GridBagConstraints.HORIZONTAL; - - centerPanel.add(rowPanel, gbc); - - // 将居中面板添加到主面板的中间 - mainPanel.add(centerPanel, BorderLayout.CENTER); - centerPanel.setBorder(BorderFactory.createMatteBorder(1,1,1,1, Color.black)); - - // 将主面板添加到 JFrame - frame.add(mainPanel); - - frame.setVisible(true); - } -} diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index 1dca4fdd16..f153999b1f 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java @@ -175,7 +175,9 @@ public class UITableEditorPane extends BasicPane { editTable.getTableHeader().setResizingAllowed(resizingAllowed); } - + /** + * 设置 TableHeader 文字左对齐 + */ public static class TableHeaderRenderer extends DefaultTableCellRenderer { public TableHeaderRenderer() { setHorizontalAlignment(SwingConstants.LEFT); diff --git a/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java index d5efb5ac9e..8863236b90 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java @@ -30,7 +30,9 @@ import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import static com.fine.swing.ui.layout.Layouts.*; +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; /** * Image background pane. diff --git a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java b/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java index fa15e8469d..45c2883aa9 100644 --- a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java +++ b/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java @@ -151,8 +151,18 @@ public class HeaderFooterEditPane extends JPanel { //toolbar. JToolBar toolbar = new JToolBar(); toolbar.setFloatable(false); + printBackgroundCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportGUI_Print_Background")); + headerUnitFieldPane = new AdjustHeightPane(); + footerUnitFieldPane = new AdjustHeightPane(); + headFootUnitFieldPane = new AdjustHeightPane(); + initIconToolPanel(); + toolbar.add(iconToolPanel); + return toolbar; + } + + private UIButton initCustomBackgroundButton() { UIButton customBackgroundButton = new UIButton(); - customBackgroundButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background")); + customBackgroundButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background")); customBackgroundButton.set4ToolbarButton(); customBackgroundButton.setIcon(new LazyIcon("background")); customBackgroundButton.addActionListener(new ActionListener() { @@ -160,34 +170,21 @@ public class HeaderFooterEditPane extends JPanel { final BackgroundPane backgroundPane = new BackgroundPane(); BasicDialog backgroundDialog = backgroundPane.showWindow( SwingUtilities.getWindowAncestor(HeaderFooterEditPane.this)); - backgroundPane.populate(background); + backgroundPane.populate(background); backgroundDialog.addDialogActionListener(new DialogActionAdapter() { @Override public void doOk() { background = backgroundPane.update(); refreshPreivewPane(); - } + } }); backgroundDialog.setVisible(true); } }); - printBackgroundCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportGUI_Print_Background")); - - JPanel headerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - headerUnitFieldPane = new AdjustHeightPane(); - headerPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Header") + ":")); - headerPane.add(headerUnitFieldPane); - - JPanel footerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - footerUnitFieldPane = new AdjustHeightPane(); - footerPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Footer") + ":")); - footerPane.add(footerUnitFieldPane); - - JPanel headerFooterPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - headFootUnitFieldPane = new AdjustHeightPane(); - headerFooterPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Height") + ":")); - headerFooterPane.add(headFootUnitFieldPane); + return customBackgroundButton; + } + private void initIconToolPanel() { iconToolPanel = row( 6, cell(this.createHFInsertButton(new TextHFElement())), @@ -198,15 +195,13 @@ public class HeaderFooterEditPane extends JPanel { cell(this.createHFInsertButton(new TimeHFElement())), cell(this.createHFInsertButton(new ImageHFElement())), cell(this.createHFInsertButton(new NewLineHFElement())), - cell(customBackgroundButton), + cell(initCustomBackgroundButton()), cell(printBackgroundCheckBox), - row( - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Height") + ":")), - cell(headFootUnitFieldPane) - ).with(it -> it.setBorder(new ScaledEmptyBorder(2,0,2,0))) + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Height") + ":")), + cell(headFootUnitFieldPane) + ).with(it -> it.setBorder(new ScaledEmptyBorder(2,0,2,0))) ).getComponent(); - toolbar.add(iconToolPanel); - return toolbar; } /** diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index efd9dc18e6..971813bff4 100644 --- a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -25,7 +25,11 @@ import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import static com.fine.swing.ui.layout.Layouts.*; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.fix; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.row; import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; /** From abec5c347c0587ddb0938a9de9e8567ed506510c Mon Sep 17 00:00:00 2001 From: renekton Date: Mon, 29 Jul 2024 17:48:21 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86/?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5/=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/UpdateAction.java | 11 --- .../design/formula/FunctionManagerPane.java | 66 +++++++++----- .../fun/impl/AbstractHyperlinkProvider.java | 3 +- .../gui/columnrow/ColumnRowVerticalPane.java | 25 +++--- .../frpane/ReportletParameterViewPane.java | 22 +++-- .../itableeditorpane/ParameterTableModel.java | 2 +- .../itableeditorpane/UITableEditorPane.java | 25 ++++-- .../hyperlink/AbstractHyperNorthPane.java | 79 ++++++++-------- .../hyperlink/ReportletHyperNorthPane.java | 74 ++++++++------- .../hyperlink/ReportletHyperlinkPane.java | 20 +++-- .../design/hyperlink/WebHyperNorthPane.java | 24 +++-- .../fr/design/hyperlink/WebHyperlinkPane.java | 17 +++- .../hyperlink/popup/ContentSettingPane.java | 75 ++++++++++------ .../hyperlink/popup/CustomFontPane.java | 20 +++-- .../hyperlink/popup/MobilePopupPane.java | 10 ++- .../popup/MobilePopupRegularPane.java | 2 +- .../hyperlink/popup/MobilePopupUIUtils.java | 24 +++-- .../hyperlink/popup/StyleSettingPane.java | 84 ++++++++++++------ .../com/fr/design/javascript/EmailPane.java | 51 +++++++---- .../fr/design/javascript/JSContentPane.java | 20 +++-- .../design/javascript/JavaScriptImplPane.java | 21 +++-- .../mainframe/EastRegionContainerPane.java | 1 + .../design/parameter/ParameterArrayPane.java | 6 +- .../widget/component/DateValuePane.java | 2 +- .../component/NumberEditorValidatePane.java | 6 +- .../fr/design/write/submit/CustomJobPane.java | 18 ++-- .../write/submit/DBManipulationPane.java | 37 +++----- .../com/fr/design/images/data/hyperlink.png | Bin 0 -> 844 bytes .../com/fr/design/images/data/user_widget.png | Bin 3609 -> 774 bytes .../fr/design/images/edit/advancedEditor.svg | 14 +-- .../images/m_format/cellstyle/new_bold.png | Bin 0 -> 611 bytes .../images/m_format/cellstyle/new_italic.png | Bin 0 -> 445 bytes .../m_format/cellstyle/new_underline.png | Bin 0 -> 476 bytes .../fr/design/images/server/global_param.png | Bin 0 -> 730 bytes .../impl/ChartHyperRelateCellLinkPane.java | 10 ++- .../fr/design/module/ChartHyperlinkGroup.java | 9 +- .../fr/design/module/FormHyperlinkGroup.java | 7 +- .../actions/server/WidgetManagerAction.java | 6 +- .../cell/smartaction/SmartJTablePane.java | 8 +- .../fr/design/report/ReportEnginePane.java | 18 +--- .../fr/design/report/WriteShortCutsPane.java | 34 +++---- .../design/webattr/ReportWriteAttrPane.java | 15 ++-- .../fr/design/widget/CellWidgetCardPane.java | 35 +++----- .../widget/UserDefinedWidgetConfigPane.java | 7 +- .../com/fr/design/widget/ValueWidgetPane.java | 33 ++++--- .../java/com/fr/design/widget/WidgetPane.java | 8 +- .../ui/BasicWidgetPropertySettingPane.java | 14 ++- .../widget/ui/DateEditorDefinePane.java | 39 ++++---- .../submit/SmartInsertDBManipulationPane.java | 19 ++-- .../write/submit/SubmitVisitorListPane.java | 6 +- .../fr/start/module/DesignerActivator.java | 13 +-- 51 files changed, 593 insertions(+), 447 deletions(-) create mode 100644 designer-base/src/main/resources/com/fr/design/images/data/hyperlink.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_bold.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_italic.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_underline.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/server/global_param.png diff --git a/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java b/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java index b9734ac9b8..061eb884f7 100644 --- a/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/UpdateAction.java @@ -10,7 +10,6 @@ import com.fr.base.Style; import com.fr.base.svg.SVGIcon; import com.fr.base.svg.IconUtils; import com.fr.design.actions.core.ActionFactory; -import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.imenu.UICheckBoxMenuItem; import com.fr.design.gui.imenu.UIMenuEastAttrItem; @@ -91,16 +90,6 @@ public abstract class UpdateAction extends ShortCut implements Action { */ public static final String DISABLED_ICON = "disabledIcon"; - - - /** - * Constructor - */ - public UpdateAction() { - //设置默认的small icon,必须有一个默认的图片,这样菜单整体美观. - this.putValue(Action.SMALL_ICON, UIConstants.BLACK_ICON); - } - /** * Returns true if the action is enabled. * diff --git a/designer-base/src/main/java/com/fr/design/formula/FunctionManagerPane.java b/designer-base/src/main/java/com/fr/design/formula/FunctionManagerPane.java index c40a917e39..de2535c929 100644 --- a/designer-base/src/main/java/com/fr/design/formula/FunctionManagerPane.java +++ b/designer-base/src/main/java/com/fr/design/formula/FunctionManagerPane.java @@ -1,5 +1,6 @@ package com.fr.design.formula; +import com.fr.base.svg.IconUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.data.tabledata.tabledatapane.ClassNameSelectPane; import com.fr.design.dialog.BasicDialog; @@ -31,6 +32,11 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.column; + public class FunctionManagerPane extends BasicPane { private FunctionControlPane functionControlPane; @@ -94,7 +100,9 @@ public class FunctionManagerPane extends BasicPane { @Override public NameableCreator[] createNameableCreators() { - NameableCreator funcDef = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Function"), FunctionDef.class, + NameableCreator funcDef = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Function"), + IconUtils.readIcon("com/fr/design/images/server/global_param.png"), + FunctionDef.class, FunctionContentPane.class); return new NameableCreator[]{funcDef}; } @@ -119,15 +127,10 @@ public class FunctionManagerPane extends BasicPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0)); JPanel northPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(northPane, BorderLayout.NORTH); - JPanel reportletNamePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - classNameTextField = new UITextField(25); - reportletNamePane.add(classNameTextField); + JPanel reportletNamePane = new JPanel(new BorderLayout()); + classNameTextField = new UITextField(); UIButton browserButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")); - browserButton.setPreferredSize(new Dimension(browserButton.getPreferredSize().width, classNameTextField.getPreferredSize().height)); - reportletNamePane.add(browserButton); - browserButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { + browserButton.addActionListener(evt -> { final ClassNameSelectPane bPane = new ClassNameSelectPane(); bPane.setClassPath(classNameTextField.getText()); bPane.showWindow( (Dialog) SwingUtilities.getWindowAncestor(FunctionContentPane.this), @@ -136,31 +139,46 @@ public class FunctionManagerPane extends BasicPane { classNameTextField.setText(bPane.getClassPath()); } }).setVisible(true); - } - }); + }); UIButton editorButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); - editorButton.setPreferredSize(new Dimension(editorButton.getPreferredSize().width, classNameTextField.getPreferredSize().height)); - reportletNamePane.add(editorButton); editorButton.addActionListener(createEditorButtonActionListener()); - JPanel classNamePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - classNamePane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_DS_Class_Name") + ":"), BorderLayout.NORTH); - classNamePane.add(reportletNamePane, BorderLayout.CENTER); - northPane.add(classNamePane); + + reportletNamePane.add(row(10, + cell(classNameTextField).weight(0.7), + cell(browserButton).weight(0.15), + cell(editorButton).weight(0.15) + ).getComponent()); + JPanel classNamePane = new JPanel(new BorderLayout()); + classNamePane.add(column(10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_DS_Class_Name"))), + cell(reportletNamePane) + ).getComponent()); DescriptionTextArea descriptionArea = new DescriptionTextArea(); descriptionArea.setWrapStyleWord(true); descriptionArea.setLineWrap(true); - northPane.add(descriptionArea); + descriptionArea.setForeground(Color.GRAY); + descriptionArea.setBorder(null); + + northPane.add(column(10, + cell(classNamePane), + cell(descriptionArea) + ).getComponent()); String path1 = getEscapePath(File.separator + ProjectConstants.WEBINF_NAME + File.separator + ProjectConstants.CLASSES_NAME); String path2 = getEscapePath(WorkContext.getCurrent().getPath() + File.separator + ProjectConstants.CLASSES_NAME); descriptionArea.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Function_Description_Area_Text", path1, path2)); - JPanel descriptionPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); //Description Pane - this.add(descriptionPane, BorderLayout.SOUTH); - descriptionPane.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); - descriptionPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Description") + ":"), BorderLayout.NORTH); - this.descriptionTextArea = new UITextArea(6, 24); - descriptionPane.add(new JScrollPane(this.descriptionTextArea), BorderLayout.CENTER); + JPanel descriptionPane = new JPanel(new BorderLayout()); //Description Pane + this.descriptionTextArea = new UITextArea(); + descriptionPane.add(column(10, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Description"))), + cell(new JScrollPane(this.descriptionTextArea)).weight(0.9) + ).getComponent()); + this.add(column(10, + cell(northPane).weight(0.35), + cell(descriptionPane).weight(0.65) + ).getComponent()); + } private String getEscapePath(String path) { diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java index 9c74795d8e..2527d64621 100644 --- a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java @@ -1,5 +1,6 @@ package com.fr.design.fun.impl; +import com.fr.base.svg.IconUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.fun.HyperlinkProvider; import com.fr.design.gui.controlpane.NameObjectCreator; @@ -25,7 +26,7 @@ public abstract class AbstractHyperlinkProvider extends AbstractProvider impleme @Override public NameableCreator createHyperlinkCreator() { - return new NameObjectCreator(text(), target(), appearance()); + return new NameObjectCreator(text(), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), target(), appearance()); } @Override diff --git a/designer-base/src/main/java/com/fr/design/gui/columnrow/ColumnRowVerticalPane.java b/designer-base/src/main/java/com/fr/design/gui/columnrow/ColumnRowVerticalPane.java index a269359b73..035b056fa3 100644 --- a/designer-base/src/main/java/com/fr/design/gui/columnrow/ColumnRowVerticalPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/columnrow/ColumnRowVerticalPane.java @@ -7,7 +7,10 @@ import javax.swing.JPanel; import com.fr.design.layout.FRGUIPaneFactory; - +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; /** * @author kunsnat E-mail:kunsnat@gmail.com @@ -24,19 +27,17 @@ public class ColumnRowVerticalPane extends ColumnRowPane { JPanel pane = FRGUIPaneFactory.createYBoxEmptyBorderPane(); this.add(pane, BorderLayout.NORTH); - JPanel colPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - colPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column") + ":")); - pane.add(colPane); - + UILabel colLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column")); + initColSpinner(); - colPane.add(columnSpinner); - - JPanel rowPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - pane.add(rowPane); - - rowPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Row") + ":")); + + UILabel rowLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Row")); initRowSpinner(); - rowPane.add(rowSpinner); + + pane.add(column(10, + row(flex(0.005), cell(rowLabel).weight(0.195), cell(rowSpinner).weight(0.8)), + row(flex(0.005), cell(colLabel).weight(0.195), cell(columnSpinner).weight(0.8)) + ).getComponent()); this.addDocumentListener(d); } diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java index 37bd82bfc5..369f2ef63b 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java @@ -16,6 +16,7 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.stable.ArrayUtils; import com.fr.stable.ParameterProvider; +import javax.swing.JPanel; import javax.swing.event.TableModelListener; import java.awt.*; import java.util.List; @@ -41,15 +42,21 @@ public class ReportletParameterViewPane extends BasicPane { public ReportletParameterViewPane(UITableEditAction[] actions, int useParaType) { this(actions, useParaType, ValueEditorPaneFactory.createVallueEditorPaneWithUseType(useParaType), - ValueEditorPaneFactory.createVallueEditorPaneWithUseType(useParaType)); + ValueEditorPaneFactory.createVallueEditorPaneWithUseType(useParaType), null); } public ReportletParameterViewPane(int useParaType, ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane) { - this(null, useParaType, valueEditorPane, valueRenderPane); + this(null, useParaType, valueEditorPane, valueRenderPane, null); } - public ReportletParameterViewPane(UITableEditAction[] actions, int useParaType, ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane) { - this.initComponent(actions, useParaType, valueEditorPane, valueRenderPane); + public ReportletParameterViewPane(UITableEditAction[] actions, int useParaType, ValueEditorPane valueEditorPane, + ValueEditorPane valueRenderPane) { + this.initComponent(actions, useParaType, valueEditorPane, valueRenderPane, null); + } + + public ReportletParameterViewPane(UITableEditAction[] actions, int useParaType, ValueEditorPane valueEditorPane, + ValueEditorPane valueRenderPane, JPanel otherPane) { + this.initComponent(actions, useParaType, valueEditorPane, valueRenderPane, otherPane); } /** @@ -58,7 +65,8 @@ public class ReportletParameterViewPane extends BasicPane { * @param actions Chart的热点链接actions * @param useParaType 类型 */ - public void initComponent(final UITableEditAction[] actions, int useParaType, ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane) { + public void initComponent(final UITableEditAction[] actions, int useParaType, ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane, + JPanel otherPanel) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); if (useParaType != ParameterTableModel.NO_CHART_USE) { @@ -70,14 +78,14 @@ public class ReportletParameterViewPane extends BasicPane { return (UITableEditAction[]) ArrayUtils.addAll(tableEditActions, actions); } }; - editorPane = new UITableEditorPane(model); + editorPane = new UITableEditorPane(model, otherPanel); } else { editorPane = new UITableEditorPane(new ParameterTableModel() { @Override public UITableEditAction[] createAction() { return (UITableEditAction[]) ArrayUtils.addAll(super.createAction(), actions); } - }); + }, otherPanel); } this.add(editorPane, BorderLayout.CENTER); diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java index 1b1471d40e..a3f9f63f29 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java @@ -241,7 +241,7 @@ public class ParameterTableModel extends UITableModelAdapter public ParameterValueRenderer(ValueEditorPane valueEditorPane) { disableLable = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Set_Paramete_Name")); disableLable.setForeground(Color.pink); - disableLable.setHorizontalAlignment(SwingConstants.CENTER); + disableLable.setHorizontalAlignment(SwingConstants.LEFT); editor = valueEditorPane; } diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index 53214b869b..9e8faf3944 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java @@ -6,10 +6,11 @@ import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import sun.swing.table.DefaultTableCellHeaderRenderer; -import javax.swing.JPanel; -import javax.swing.JTable; +import javax.swing.*; import javax.swing.event.TableModelListener; +import javax.swing.table.DefaultTableCellRenderer; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Insets; @@ -37,6 +38,11 @@ public class UITableEditorPane extends BasicPane { this.initComponent(model.createAction()); } + public UITableEditorPane(UITableModelAdapter model, JPanel panel) { + this.tableModel = model; + this.initComponent(model.createAction(), panel); + } + public UITableEditorPane(UITableModelAdapter model, String s) { leftLabelName = s; this.tableModel = model; @@ -44,20 +50,29 @@ public class UITableEditorPane extends BasicPane { } protected void initComponent(UITableEditAction[] action) { + this.initComponent(action, null); + + } + + protected void initComponent(UITableEditAction[] action, JPanel content) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel pane = new JPanel(new BorderLayout(4, 4)); this.add(pane, BorderLayout.CENTER); UILabel l = new UILabel(leftLabelName); editTable = tableModel.createTable(); - + DefaultTableCellHeaderRenderer headerRenderer = new DefaultTableCellHeaderRenderer(); + headerRenderer.setHorizontalAlignment(SwingConstants.LEFT); + editTable.getTableHeader().setDefaultRenderer(headerRenderer); UIScrollPane scrollPane = new UIScrollPane(editTable); scrollPane.setBorder(new FineRoundBorder()); pane.add(scrollPane, BorderLayout.CENTER); initbuttonPane(action); JPanel controlPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); controlPane.add(buttonPane, BorderLayout.EAST); - controlPane.add(l, BorderLayout.WEST); + + controlPane.add(content == null ? l : content, BorderLayout.WEST); + pane.add(controlPane, BorderLayout.NORTH); } @@ -70,7 +85,7 @@ public class UITableEditorPane extends BasicPane { buttonPane = new JPanel(); if (action != null) { - buttonPane.setLayout(new GridLayout(1, action.length, 3, 3)); + buttonPane.setLayout(new GridLayout(1, action.length, 6, 3)); for (int i = 0; i < action.length; i++) { final UIButton newButton = new UIButton(action[i]); newButton.set4ToolbarButton(); diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/AbstractHyperNorthPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/AbstractHyperNorthPane.java index 42f13ceed5..bec8381ad8 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/AbstractHyperNorthPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/AbstractHyperNorthPane.java @@ -4,6 +4,7 @@ import com.fr.base.Utils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.itextfield.UINumberField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.js.Hyperlink; @@ -17,6 +18,12 @@ import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.flex; +import static com.fine.swing.ui.layout.Layouts.fix; + public abstract class AbstractHyperNorthPane extends BasicBeanPane { public static final int NEW_WINDOW = 0; public static final int DIALOG = 1; @@ -31,11 +38,11 @@ public abstract class AbstractHyperNorthPane extends BasicB /** * 对话框高度输入框 */ - private UINumberField heightTextFiled; + private UISpinner heightTextFiled; /** * 对话框宽度输入框 */ - private UINumberField widthTextFiled; + private UISpinner widthTextFiled; public AbstractHyperNorthPane() { @@ -46,8 +53,7 @@ public abstract class AbstractHyperNorthPane extends BasicB this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); JPanel centerPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); JPanel headerPane = this.setHeaderPanel(); - this.add(headerPane, BorderLayout.NORTH); - this.add(centerPane, BorderLayout.CENTER); + targetFrameComboBox = new UIComboBox(getTargetFrames()); targetFrameComboBox.setRenderer(new DefaultListCellRenderer() { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { @@ -55,38 +61,37 @@ public abstract class AbstractHyperNorthPane extends BasicB return this; } }); - JPanel targetFramePanel = new JPanel(); - targetFramePanel.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Link_Opened_In"))); - targetFramePanel.add(targetFrameComboBox); + UILabel targetFrameLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Link_Opened_In")); + targetFrameComboBox.setEditable(true); - targetFrameComboBox.setPreferredSize(new Dimension(100, 20)); - - final JPanel newWindowConfPane = new JPanel(); - newWindowConfPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Height") + ": ")); - heightTextFiled = new UINumberField(); - heightTextFiled.setText(String.valueOf(DEFAULT_H_VALUE)); - heightTextFiled.setPreferredSize(new Dimension(40, 20)); - newWindowConfPane.add(heightTextFiled); - newWindowConfPane.add(new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Designer_Width") + ": ")); - widthTextFiled = new UINumberField(); - widthTextFiled.setText(String.valueOf(DEFAULT_V_VALUE)); - widthTextFiled.setPreferredSize(new Dimension(40, 20)); - newWindowConfPane.add(widthTextFiled); + + final JPanel newWindowConfPane = new JPanel(new BorderLayout()); + UILabel heightLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Height")); + heightTextFiled = new UISpinner(0, Integer.MAX_VALUE, 1, DEFAULT_H_VALUE); + UILabel widthLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Designer_Width")); + widthTextFiled = new UISpinner(0, Integer.MAX_VALUE, 1, DEFAULT_V_VALUE); + newWindowConfPane.add(column(10, + row(cell(heightLabel).weight(0.13), cell(heightTextFiled).weight(0.87)), + row(cell(widthLabel).weight(0.13), cell(widthTextFiled).weight(0.87)) + ).getComponent()); JPanel centerPanel = new JPanel(new BorderLayout()); - centerPanel.add(targetFramePanel, BorderLayout.WEST); - centerPanel.add(newWindowConfPane, BorderLayout.EAST); + + centerPanel.add(column( + 10, + row(cell(targetFrameLabel).weight(0.13), cell(targetFrameComboBox).weight(0.87)), + cell(newWindowConfPane) + ).getComponent()); newWindowConfPane.setVisible(false); centerPane.add(centerPanel); - targetFrameComboBox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - newWindowConfPane.setVisible(DIALOG == targetFrameComboBox.getSelectedIndex()); - } - }); + targetFrameComboBox.addActionListener(e -> newWindowConfPane.setVisible(DIALOG == targetFrameComboBox.getSelectedIndex())); - this.add(this.setFootPanel(), BorderLayout.SOUTH); + this.add(column( + cell(headerPane), + cell(centerPane), + cell(this.setFootPanel()) + ).getComponent()); } protected String[] getTargetFrames() { @@ -107,19 +112,19 @@ public abstract class AbstractHyperNorthPane extends BasicB this.targetFrameComboBox = targetFrameComboBox; } - public UINumberField getHeightTextFiled() { + public UISpinner getHeightTextFiled() { return heightTextFiled; } - public void setHeightTextFiled(UINumberField heightTextFiled) { + public void setHeightTextFiled(UISpinner heightTextFiled) { this.heightTextFiled = heightTextFiled; } - public UINumberField getWidthTextFiled() { + public UISpinner getWidthTextFiled() { return widthTextFiled; } - public void setWidthTextFiled(UINumberField widthTextFiled) { + public void setWidthTextFiled(UISpinner widthTextFiled) { this.widthTextFiled = widthTextFiled; } @@ -127,8 +132,8 @@ public abstract class AbstractHyperNorthPane extends BasicB public void populateBean(T link) { String name = link.getTargetFrame(); targetFrameComboBox.setSelectedIndex(HyperlinkTargetFrame.convert(name)); - heightTextFiled.setText(String.valueOf(link.getHeight() == 0 ? DEFAULT_H_VALUE : link.getHeight())); - widthTextFiled.setText(String.valueOf(link.getWidth() == 0 ? DEFAULT_V_VALUE : link.getWidth())); + heightTextFiled.setValue(link.getHeight() == 0 ? DEFAULT_H_VALUE : link.getHeight()); + widthTextFiled.setValue(link.getWidth() == 0 ? DEFAULT_V_VALUE : link.getWidth()); populateSubHyperlinkBean(link); } @@ -148,8 +153,8 @@ public abstract class AbstractHyperNorthPane extends BasicB public void updateBean(T link) { updateSubHyperlinkBean(link); link.setTargetFrame(HyperlinkTargetFrame.parse(targetFrameComboBox.getSelectedIndex()).getName()); - link.setHeight(Utils.objectToNumber(heightTextFiled.getText(), false).intValue()); - link.setWidth(Utils.objectToNumber(widthTextFiled.getText(), false).intValue()); + link.setHeight(Utils.objectToNumber(heightTextFiled.getValue(), false).intValue()); + link.setWidth(Utils.objectToNumber(widthTextFiled.getValue(), false).intValue()); } } diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java index 8fa88e9293..2b757db6df 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java @@ -10,6 +10,7 @@ import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.itextfield.UINumberField; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itree.filetree.ReportletPane; @@ -39,6 +40,10 @@ import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; + /** * 热点链接部分 上方 定义特征 样式 报表 等属性的界面. * @@ -143,12 +148,11 @@ public class ReportletHyperNorthPane extends AbstractHyperNorthPane dialogComponents, List othersComponents) { //最上方位置的面板 JPanel headerPane = this.setHeaderPanel(); - Component[] headerComponents = new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Reportlet") + ":"), headerPane}; + Component[] headerComponents = new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Reportlet")), headerPane}; dialogComponents.add(headerComponents); othersComponents.add(headerComponents); } @@ -343,10 +352,9 @@ public class ReportletHyperNorthPane extends AbstractHyperNorthPane dialogComponents) {// 对话框大小 - final JPanel sizeJPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); - UILabel heightLabel = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Height") + ":"); - heightLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 10)); - sizeJPanel.add(heightLabel); - UINumberField heightTextFiled = new UINumberField(); - heightTextFiled.setMinValue(0); - heightTextFiled.canFillNegativeNumber(false); - heightTextFiled.setText(String.valueOf(DEFAULT_H_VALUE)); - heightTextFiled.setPreferredSize(new Dimension(40, 20)); - sizeJPanel.add(heightTextFiled); + final JPanel sizeJPanel = new JPanel(new BorderLayout()); + UILabel heightLabel = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Height")); + UISpinner heightTextFiled = new UISpinner(0, Integer.MAX_VALUE, 1, DEFAULT_H_VALUE); this.setHeightTextFiled(heightTextFiled); - UILabel widthLabel = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Designer_Width") + ":"); - widthLabel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10)); - sizeJPanel.add(widthLabel); - UINumberField widthTextFiled = new UINumberField(); - widthTextFiled.setMinValue(0); - widthTextFiled.canFillNegativeNumber(false); - widthTextFiled.setText(String.valueOf(DEFAULT_V_VALUE)); - widthTextFiled.setPreferredSize(new Dimension(40, 20)); - sizeJPanel.add(widthTextFiled); + UILabel widthLabel = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Designer_Width")); + UISpinner widthTextFiled = new UISpinner(0, Integer.MAX_VALUE, 1, DEFAULT_V_VALUE); this.setWidthTextFiled(widthTextFiled); + sizeJPanel.add(column(8, + row(10, cell(heightLabel).weight(0.2), cell(heightTextFiled).weight(0.8)), + row(10, cell(widthLabel).weight(0.2), cell(widthTextFiled).weight(0.8)) + ).getComponent()); sizeJPanel.setVisible(true); - dialogComponents.add(new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Dialog_Size") + ":"), sizeJPanel}); + dialogComponents.add(new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Dialog_Size")), sizeJPanel}); } private void initDialogLocationPanel(List dialogComponents) { @@ -408,13 +406,13 @@ public class ReportletHyperNorthPane extends AbstractHyperNorthPane dialogComponents, List othersComponents) { // 最下方的配置面板 // 参数传递方式 - Component[] footerComponents = new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Reportlet_Parameter_Type") + ":"), this.setFootPanel()}; + Component[] footerComponents = new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Reportlet_Parameter_Type")), this.setFootPanel()}; dialogComponents.add(footerComponents); othersComponents.add(footerComponents); } diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java index 48affb7dc3..8efb32aba3 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java @@ -1,10 +1,12 @@ package com.fr.design.hyperlink; +import com.fine.theme.light.ui.FineRoundBorder; import com.fr.base.BaseUtils; import com.fr.base.Parameter; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.frpane.ReportletParameterViewPane; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.itableeditorpane.ParameterTableModel; import com.fr.design.gui.itableeditorpane.UITableEditAction; import com.fr.design.i18n.Toolkit; @@ -16,13 +18,14 @@ import com.fr.js.ReportletHyperlink; import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; -import javax.swing.JOptionPane; -import java.awt.BorderLayout; -import java.awt.FlowLayout; +import javax.swing.*; import java.awt.event.ActionEvent; import java.util.HashMap; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; + public class ReportletHyperlinkPane extends AbstractHyperLinkPane { /** * 超链配置面板 @@ -47,7 +50,6 @@ public class ReportletHyperlinkPane extends AbstractHyperLinkPane { @Override protected JPanel setHeaderPanel() { - JPanel headerPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); + JPanel headerPane = new JPanel(new BorderLayout()); - urlTextField = new UITextField(headerPane.getWidth()); + urlTextField = new UITextField(); urlTextField.setText(ProductConstants.WEBSITE_URL); - JPanel urlWithHelp = GUICoreUtils.createNamedPane(urlTextField, "URL:"); + UILabel urlLabel = new UILabel("URL"); + JPanel urlWithHelp = new JPanel(new BorderLayout()); + urlWithHelp.add(row( + flex(0.018), + cell(urlLabel).weight(0.125), + cell(urlTextField).weight(0.85), + flex(0.015) + ).getComponent()); if (this.needRenamePane) { - headerPane.setLayout(new BorderLayout(LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_SMALL)); itemNameTextField = new UITextField(); - headerPane.add(GUICoreUtils.createNamedPane(itemNameTextField, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name") + ":"), BorderLayout.NORTH); + headerPane.add(GUICoreUtils.createNamedPane(itemNameTextField, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name")), BorderLayout.NORTH); headerPane.add(urlWithHelp, BorderLayout.CENTER); } else { - headerPane.add(urlWithHelp, BorderLayout.NORTH); + headerPane.add(urlWithHelp); } return headerPane; diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/WebHyperlinkPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/WebHyperlinkPane.java index 2975e7c343..5147ed064d 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/WebHyperlinkPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/WebHyperlinkPane.java @@ -1,8 +1,10 @@ package com.fr.design.hyperlink; +import com.fine.theme.light.ui.FineRoundBorder; import com.fr.base.Parameter; import com.fr.design.gui.frpane.ReportletParameterViewPane; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.itableeditorpane.ParameterTableModel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; @@ -17,6 +19,10 @@ import java.awt.FlowLayout; import java.util.HashMap; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; + public class WebHyperlinkPane extends AbstractHyperLinkPane { private static final int BORDER_WIDTH = 4; private WebHyperNorthPane northPane; @@ -38,14 +44,19 @@ public class WebHyperlinkPane extends AbstractHyperLinkPane { this.setBorder(BorderFactory.createEmptyBorder(BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH)); northPane = new WebHyperNorthPane(needRenamePane()); - this.add(northPane, BorderLayout.NORTH); + //this.add(northPane, BorderLayout.NORTH); parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane()); - this.add(parameterViewPane, BorderLayout.CENTER); + //this.add(parameterViewPane, BorderLayout.CENTER); parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Parameters"), null)); extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters")); - this.add(GUICoreUtils.createFlowPane(new Component[]{extendParametersCheckBox}, FlowLayout.LEFT), BorderLayout.SOUTH); + //this.add(GUICoreUtils.createFlowPane(new Component[]{extendParametersCheckBox}, FlowLayout.LEFT), BorderLayout.SOUTH); + this.add(column( + cell(northPane), + cell(parameterViewPane).weight(1.0), + cell(extendParametersCheckBox) + ).getComponent()); } @Override diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java index 848ac9e57c..2b5f42398f 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java @@ -1,5 +1,6 @@ package com.fr.design.hyperlink.popup; +import com.fine.theme.utils.FineUIUtils; import com.fr.base.BaseFormula; import com.fr.base.BaseUtils; import com.fr.base.Parameter; @@ -10,6 +11,7 @@ import com.fr.design.gui.frpane.ReportletParameterViewPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itableeditorpane.UITableEditAction; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itree.filetree.ReportletPane; @@ -31,6 +33,10 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; + public class ContentSettingPane extends AbstractHyperLinkPane { private JPanel popupTargetPane; private UIRadioButton templatePopupButton; @@ -47,7 +53,7 @@ public class ContentSettingPane extends AbstractHyperLinkPane { private ContentSettingPane contentSettingPane; private StyleSettingPane styleSettingPane; @@ -26,9 +30,11 @@ public class MobilePopupPane extends FurtherBasicBeanPane JPanel scrollContent = new JPanel(); scrollContent.setLayout(new BorderLayout(10, 10)); contentSettingPane = new ContentSettingPane(); - scrollContent.add(contentSettingPane, BorderLayout.NORTH); styleSettingPane = new StyleSettingPane(); - scrollContent.add(styleSettingPane, BorderLayout.CENTER); + scrollContent.add(column(20, + cell(FineUIUtils.wrapComponentWithTitle(contentSettingPane, Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Content"))), + cell(FineUIUtils.wrapComponentWithTitle(styleSettingPane, Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Style"))) + ).getComponent()); contentSettingPane.addTargetRadioActionListener(radioActionListener); diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupRegularPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupRegularPane.java index 65e5085d15..419c27cc87 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupRegularPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupRegularPane.java @@ -55,7 +55,7 @@ public class MobilePopupRegularPane extends BasicPane { radiosPane.add(customRadio); radiosPane.add(autoRadio); - return MobilePopupUIUtils.createLeftTileRightContentPanel(this.label, radiosPane); + return MobilePopupUIUtils.createLeftTileRightContentPanel(this.label, radiosPane, Color.GRAY); } private ActionListener radioActionListener = new ActionListener() { diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupUIUtils.java b/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupUIUtils.java index cb3fbad58e..65a413e479 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupUIUtils.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/popup/MobilePopupUIUtils.java @@ -2,24 +2,34 @@ package com.fr.design.hyperlink.popup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.widget.UITitleSplitLine; +import sun.awt.windows.WComponentPeer; import javax.swing.*; import java.awt.*; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; + public class MobilePopupUIUtils { static public int Line_Height = 20; static public int SplitLineWidth = 520; static public int Left_Title_width = 80; static public JPanel createLeftTileRightContentPanel(String title, JComponent contentPanel) { + return createLeftTileRightContentPanel(title, contentPanel, null); + } + static public JPanel createLeftTileRightContentPanel(String title, JComponent contentPanel, Color color) { JPanel jp = new JPanel(); - jp.setBorder(BorderFactory.createEmptyBorder(0,0,0, 30)); - jp.setLayout(new BorderLayout(10,0)); - UILabel titleLabel = new UILabel(title + ":"); - titleLabel.setPreferredSize(new Dimension(MobilePopupUIUtils.Left_Title_width, Line_Height)); - titleLabel.setHorizontalAlignment(SwingConstants.RIGHT); - jp.add(titleLabel, BorderLayout.WEST); - jp.add(contentPanel, BorderLayout.CENTER); + jp.setLayout(new BorderLayout()); + UILabel titleLabel = new UILabel(title); + if (color != null) { + titleLabel.setForeground(color); + } + titleLabel.setForeground(color); + jp.add(row(10, + cell(titleLabel), + cell(contentPanel) + ).getComponent()); return jp; } diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java index 1bebe3dfc8..6ca7048af1 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java @@ -16,6 +16,11 @@ import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.flex; + public class StyleSettingPane extends BasicBeanPane { private double maxNumber = 100; private double maxBorderRadius = 24; @@ -40,65 +45,81 @@ public class StyleSettingPane extends BasicBeanPane { } private void initComponent() { - this.setLayout(new BorderLayout(0, 10)); - this.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Style"))); + this.setLayout(new BorderLayout()); typePane = this.createTypePane(); - this.add(typePane, BorderLayout.NORTH); stylePane = this.createStylePane(); - this.add(stylePane, BorderLayout.CENTER); + this.add(column(10, + cell(typePane), + cell(stylePane) + ).getComponent()); } private JPanel createTypePane() { JPanel typePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); popupTypeLabel = new UILabel(""); - typePane.add(popupTypeLabel, BorderLayout.CENTER); - return MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Type"), typePane); + UILabel typeLabel = new UILabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Type")); + typePane.add(row(40, + cell(typeLabel), + cell(popupTypeLabel) + ).getComponent()); + return typePane; } private JPanel createStylePane() { JPanel stylePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - stylePane.add(this.createBorderSettingPane(), BorderLayout.NORTH); - stylePane.add(this.createBackgroundSettingPane(), BorderLayout.CENTER); - stylePane.add(this.createPopupSizePane(), BorderLayout.SOUTH); + stylePane.add(column(10, + cell(this.createBorderSettingPane()), + cell(this.createBackgroundSettingPane()), + cell(this.createPopupSizePane()) + ).getComponent()); return stylePane; } private JPanel createBorderSettingPane() { JPanel borderPane = new JPanel(); - VerticalFlowLayout layout = new VerticalFlowLayout(VerticalFlowLayout.TOP, 0, 10); - layout.setAlignLeft(true); - borderPane.setLayout(layout); + borderPane.setLayout(new BorderLayout()); borderType = new LineComboBox(MobilePopupConstants.BORDER_LINE_STYLE_ARRAY); borderType.setPreferredSize(new Dimension(115, 20)); - borderPane.add(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Line"), borderType)); borderColor = new NewColorSelectBox(100); - borderPane.add(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Colors"), borderColor)); borderRadiusSpinner = new UISpinner(0, maxBorderRadius, 1, 20); borderRadiusSpinner.setPreferredSize(new Dimension(120, 20)); - borderPane.add(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Radius"), borderRadiusSpinner)); - return MobilePopupUIUtils.createTitleSplitLineContentPane(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Border"), borderPane); + JLabel label = new JLabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Border")); + borderPane.add(row(40, + column(10, + cell(label).weight(0.3), + flex().weight(0.7)), + column(10, + cell(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Line"), borderType, Color.GRAY)), + cell(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Colors"), borderColor, Color.GRAY)), + cell(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Radius"), borderRadiusSpinner, Color.GRAY))) + ).getComponent()); + return borderPane; } private JPanel createBackgroundSettingPane() { JPanel bgPane = new JPanel(); - VerticalFlowLayout layout = new VerticalFlowLayout(VerticalFlowLayout.TOP, 0, 10); - layout.setAlignLeft(true); - bgPane.setLayout(layout); + bgPane.setLayout(new BorderLayout()); - JPanel colorPane = new JPanel(new FlowLayout(FlowLayout.LEFT, 0,0)); bgColor = new NewColorSelectBox(100); - colorPane.add(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Colors"), bgColor)); - bgPane.add(colorPane); JPanel transparencyPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); this.numberDragPane = new UINumberDragPane(0,100); this.numberDragPane.setPreferredSize(new Dimension(140, 20)); transparencyPane.add(numberDragPane, BorderLayout.CENTER); transparencyPane.add(new UILabel(" %"), BorderLayout.EAST); - bgPane.add(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Opacity"), transparencyPane)); - return MobilePopupUIUtils.createTitleSplitLineContentPane(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Background"), bgPane); + JLabel bgLabel = new JLabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Background")); + bgPane.add(row(40, + column(10, + cell(bgLabel).weight(0.6), + flex().weight(0.4)), + column(10, + cell(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Colors"), bgColor, Color.GRAY)), + cell(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Opacity"), transparencyPane, Color.GRAY)) + ) + ).getComponent()); + return bgPane; } private JPanel createPopupSizePane() { @@ -107,10 +128,17 @@ public class StyleSettingPane extends BasicBeanPane { mobileRegularPane = new MobilePopupRegularPane(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Mobile_Rules")); padRegularPane = new MobilePopupRegularPane(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Pad_Rules")); - sizePane.add(mobileRegularPane, BorderLayout.NORTH); - sizePane.add(padRegularPane, BorderLayout.CENTER); - - return MobilePopupUIUtils.createTitleSplitLineContentPane(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Size"), sizePane); + JLabel sizeLabel = new JLabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Size")); + sizePane.add(row(14, + column(10, + cell(sizeLabel).weight(0.16), + flex().weight(0.84)), + column(10, + cell(mobileRegularPane), + cell(padRegularPane) + ) + ).getComponent()); + return sizePane; } @Override diff --git a/designer-base/src/main/java/com/fr/design/javascript/EmailPane.java b/designer-base/src/main/java/com/fr/design/javascript/EmailPane.java index 21961318bc..50464a51ee 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/EmailPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/EmailPane.java @@ -8,14 +8,25 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; import com.fr.js.EmailJavaScript; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingConstants; import javax.swing.text.JTextComponent; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Color; + +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; public class EmailPane extends FurtherBasicBeanPane { @@ -37,12 +48,12 @@ public class EmailPane extends FurtherBasicBeanPane { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 10)); tipsPane1 = new UILabel(); - tipsPane1.setHorizontalAlignment(SwingConstants.RIGHT); - tipsPane1.setForeground(Color.pink); + tipsPane1.setHorizontalAlignment(SwingConstants.LEFT); + tipsPane1.setForeground(Color.gray); tipsPane2 = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Tips")); - UILabel mainTextLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Mail_Content") + ":"); - mainTextLabel.setHorizontalAlignment(SwingConstants.RIGHT); + UILabel mainTextLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Mail_Content")); + mainTextLabel.setHorizontalAlignment(SwingConstants.LEFT); mainTextLabel.setVerticalAlignment(SwingConstants.TOP); JScrollPane scrollPane = new JScrollPane(mainTextEditor = new JTextArea()); scrollPane.setBorder(null); @@ -62,21 +73,23 @@ public class EmailPane extends FurtherBasicBeanPane { double[] rowSize = { preferred, preferred, preferred, preferred, preferred, fill, preferred, preferred, preferred }; double[] columnSize = { preferred, fill}; showTplContent = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Email_Can_Preview_Report_Content")); - centerPane = TableLayoutHelper.createCommonTableLayoutPane(new JComponent[][]{ - {new UILabel(), tipsPane1}, - createLinePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_HJS_Mail_to"), maitoEditor = new UITextField()), - createLinePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_HJS_CC_To"), ccEditor = new UITextField()), - createLinePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Bcc"), bccEditor = new UITextField()), - createLinePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Mail_Subject"), titleEditor = new UITextField()), - {mainTextLabel, scrollPane}, - {new UILabel(), showTplContent}, - {new UILabel(), tipsPane2}},rowSize, columnSize, 8); + + centerPane = new JPanel(new BorderLayout()); + centerPane.add(column(10, + row(cell(tipsPane1), cell(new UILabel())), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_HJS_Mail_to"))).weight(0.1), flex(0.04), cell(maitoEditor = new UITextField()).weight(0.86)), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_HJS_CC_To"))).weight(0.1), flex(0.04), cell(ccEditor = new UITextField()).weight(0.86)), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Bcc"))).weight(0.1), flex(0.04), cell(bccEditor = new UITextField()).weight(0.86)), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_EmailPane_Mail_Subject"))).weight(0.1), flex(0.04), cell(titleEditor = new UITextField()).weight(0.86)), + row(cell(mainTextLabel).weight(0.1), flex(0.04), cell(scrollPane).weight(0.86)).weight(1.0), + row(cell(new UILabel()).weight(0.1), flex(0.04), cell(showTplContent).weight(0.86)), + row(cell(new UILabel()).weight(0.14), cell(tipsPane2).weight(0.86)) + ).getComponent()); } protected JComponent[] createLinePane(String string, JTextComponent textComp) { - UILabel label = new UILabel(string + ":"); - label.setPreferredSize(new Dimension(70, label.getPreferredSize().height)); - label.setHorizontalAlignment(SwingConstants.RIGHT); + UILabel label = new UILabel(string); + label.setHorizontalAlignment(SwingConstants.LEFT); return new JComponent[] { label, textComp }; } diff --git a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java index 31c45da762..8ec6bebafc 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java @@ -26,6 +26,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.general.IOUtils; import com.fr.js.JavaScriptImpl; +import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.KeyStroke; import javax.swing.SwingConstants; @@ -40,6 +41,9 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; + public class JSContentPane extends BasicPane { protected RSyntaxTextArea contentTextArea; private UILabel funNameLabel = new UILabel(); @@ -47,7 +51,7 @@ public class JSContentPane extends BasicPane { private static final Dimension FUNCTION_NAME_LABEL_SIZE = new Dimension(300, 80); private String[] defaultArgs; private int titleWidth = 180; - private JPanel labelPane = new JPanel(new BorderLayout(6, 4));; + private JPanel labelPane = new JPanel(); private NewJavaScriptImplPane newJavaScriptImplPane = null; private JavaScriptImpl javaScript; private JSImplUpdateAction jsImplUpdateAction; @@ -97,7 +101,6 @@ public class JSContentPane extends BasicPane { private void addNewPaneLabel(){ UILabel advancedEditorLabel = new UILabel(Toolkit.i18nText("Fine-Design_Advanced_Editor"), IconUtils.readIcon("com/fr/design/images/edit/advancedEditor.svg"), SwingConstants.LEFT); advancedEditorLabel.setCursor(new Cursor(Cursor.HAND_CURSOR)); - advancedEditorLabel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -183,15 +186,16 @@ public class JSContentPane extends BasicPane { }.execute(); } }); - + labelPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10)); labelPane.add(label,BorderLayout.CENTER); - JPanel jsParaPane = new JPanel(new BorderLayout(4, 4)); - jsParaPane.setPreferredSize(new Dimension(300, 80)); + JPanel jsParaPane = new JPanel(new BorderLayout()); + UIScrollPane scrollPane = new UIScrollPane(funNameLabel); - scrollPane.setPreferredSize(FUNCTION_NAME_LABEL_SIZE); scrollPane.setBorder(new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, UIConstants.ARC)); - jsParaPane.add(scrollPane, BorderLayout.WEST); - jsParaPane.add(labelPane, BorderLayout.EAST); + jsParaPane.add(row(10, + cell(scrollPane).weight(0.6), + cell(labelPane).weight(0.4) + ).getComponent()); return jsParaPane; } diff --git a/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java b/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java index 37bca2f6eb..e2a740c534 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java @@ -25,11 +25,14 @@ import javax.swing.event.TableModelListener; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridBagConstraints; -import java.awt.GridLayout; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.cell; + public class JavaScriptImplPane extends AbstractHyperLinkPane { private static final int BOTTOM_BORDER = 12; private UITextField itemNameTextField; @@ -64,21 +67,23 @@ public class JavaScriptImplPane extends AbstractHyperLinkPane { protected void initComponents() { parameterPane = createParameterViewPane(); importedJsPane = createImportedJsPane(); - importedJsPane.setPreferredSize(new Dimension(265, 150)); jsPane = createJSContentPane(defaultArgs); jsPane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript"))); - parameterPane.setPreferredSize(new Dimension(265, 150)); - JPanel topPane = new JPanel(new GridLayout(1,2)); - topPane.add(importedJsPane); - topPane.add(parameterPane); + JPanel topPane = new JPanel(new BorderLayout()); + topPane.add(row(10, + cell(importedJsPane).weight(0.5), + cell(parameterPane).weight(0.5) + ).getComponent()); topPane.setBorder(BorderFactory.createEmptyBorder(0, 0, BOTTOM_BORDER, 0)); this.setLayout(new BorderLayout()); - this.add(topPane, BorderLayout.NORTH); - this.add(jsPane, BorderLayout.CENTER); + this.add(column(10, + cell(topPane).weight(0.5), + cell(jsPane).weight(0.5) + ).getComponent()); this.reLayoutForChart(); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index 6d33c5946b..818665b989 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -890,6 +890,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { propertyPanel = new JPanel(); contentPane = generateContentPane(); popupToolPane = new PopupToolPane(this, PopupToolPane.DOWN_BUTTON); + popupToolPane.setPreferredSize(new Dimension(0, 34)); headerPane = new JPanel(); headerPane.setPreferredSize(new Dimension(headerPane.getPreferredSize().width, 0)); // 默认隐藏 contentArea = new JPanel(new BorderLayout()); diff --git a/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java b/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java index 22211acff1..a1e73dcfa8 100644 --- a/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java +++ b/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java @@ -2,6 +2,7 @@ package com.fr.design.parameter; import com.fr.base.Parameter; import com.fr.base.ParameterConfig; +import com.fr.base.svg.IconUtils; import com.fr.design.gui.controlpane.JListControlPane; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.gui.controlpane.NameableSelfCreator; @@ -57,7 +58,10 @@ public class ParameterArrayPane extends JListControlPane { */ public NameableCreator[] createNameableCreators() { return new NameableCreator[]{ - new NameableSelfCreator(Toolkit.i18nText("Fine-Design_Basic_Engine_Parameter_Name"), Parameter.class, ParameterPane.class) { + new NameableSelfCreator(Toolkit.i18nText("Fine-Design_Basic_Engine_Parameter_Name"), + "com/fr/design/images/server/global_param.png", + Parameter.class, + ParameterPane.class) { public Parameter createNameable(UnrepeatedNameHelper helper) { // 返回参数设置面板. return new Parameter(helper.createUnrepeatedName(DEFAULT_PARAMETER_NAME_PREFIX)); diff --git a/designer-base/src/main/java/com/fr/design/widget/component/DateValuePane.java b/designer-base/src/main/java/com/fr/design/widget/component/DateValuePane.java index 846bf6b3f0..a02efff2dc 100644 --- a/designer-base/src/main/java/com/fr/design/widget/component/DateValuePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/component/DateValuePane.java @@ -63,7 +63,7 @@ public class DateValuePane extends Column { }); this.add( row( - cell(titleLabel).weight(1.2), cell(widgetValueHead).weight(3) + cell(titleLabel).weight(1.2), cell(widgetValueHead).weight(1.6), flex(1.4) ), cell(customRow) ); diff --git a/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java b/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java index 7d5c817e16..3196769942 100644 --- a/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java +++ b/designer-base/src/main/java/com/fr/design/widget/component/NumberEditorValidatePane.java @@ -70,10 +70,12 @@ public class NumberEditorValidatePane extends JPanel { this.allowNegativeCheckBox.addActionListener(allowNegativeListener); this.setMaxValueCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Need_Max_Value"), false); this.maxValueSpinner = new UISpinner(-Double.MAX_VALUE, Double.MAX_VALUE, 1D, 0D); + this.maxValueSpinner.setSize(this.decimalLength.getSize()); this.setMaxValueCheckBox.addActionListener(setMaxListener); this.maxValueSpinner.addChangeListener(maxValueChangeListener); this.setMinValueCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Need_Min_Value"), false); this.minValueSpinner = new UISpinner(-Double.MAX_VALUE, Double.MAX_VALUE, 1D, 0D); + this.minValueSpinner.setSize(this.decimalLength.getSize()); this.setMinValueCheckBox.addActionListener(setMinListener); this.minValueSpinner.addChangeListener(minValueChangeListener); initErrorMsgPane(); @@ -91,10 +93,10 @@ public class NumberEditorValidatePane extends JPanel { cell(limitNumberPane), cell(allowNegativeCheckBox), row( - cell(setMaxValueCheckBox).weight(1), cell(maxValueSpinner).weight(1.5) + cell(setMaxValueCheckBox).weight(1.2), cell(maxValueSpinner).weight(3) ), row( - cell(setMinValueCheckBox).weight(1), cell(minValueSpinner).weight(1.5) + cell(setMinValueCheckBox).weight(1.2), cell(minValueSpinner).weight(3) ), cell(errorMsgBorderPane) ).getComponent()); diff --git a/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java b/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java index 717f19b907..a7204f4467 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java @@ -1,5 +1,6 @@ package com.fr.design.write.submit; +import com.fine.theme.utils.FineUIScale; import com.fr.base.GraphHelper; import com.fr.data.AbstractClassJob; import com.fr.design.data.tabledata.tabledatapane.ClassNameSelectPane; @@ -34,22 +35,22 @@ import static com.fine.swing.ui.layout.Layouts.row; public abstract class CustomJobPane extends BasicBeanPane { protected UITextField classNameTextField; protected ObjectProperiesPane objectProperiesPane; - private static final int DEFAULT_LENGTH = 25; + private static final int DEFAULT_LENGTH = 33; public CustomJobPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel reportletNamePane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(); - classNameTextField = new UITextField(getLengthOfTextField()); + classNameTextField = new UITextField(); //reportletNamePane.add(classNameTextField); UIButton browserButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")); browserButton.setPreferredSize(new Dimension( - GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 20, + GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 40, classNameTextField.getPreferredSize().height)); UIButton editButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit")); editButton.setPreferredSize(new Dimension( - GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 20, + GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 40, classNameTextField.getPreferredSize().height)); /*reportletNamePane.add(browserButton); @@ -94,10 +95,11 @@ public abstract class CustomJobPane extends BasicBeanPane { }); reportletNamePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Class_Name"), null)); + reportletNamePane.setLayout(new BorderLayout()); reportletNamePane.add(row(10, - cell(classNameTextField).weight(1.0), - cell(browserButton), - cell(editButton) + cell(classNameTextField).weight(0.8), + cell(browserButton).weight(0.1), + cell(editButton).weight(0.1) ).getComponent()); //this.add(reportletNamePane, BorderLayout.NORTH); @@ -120,7 +122,7 @@ public abstract class CustomJobPane extends BasicBeanPane { } public int getLengthOfTextField() { - return DEFAULT_LENGTH; + return FineUIScale.scale(DEFAULT_LENGTH); } protected String title4PopupWindow() { diff --git a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java index 103156944d..6dfa381e81 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java @@ -5,7 +5,6 @@ import com.fine.theme.utils.FineUIScale; import com.fr.base.BaseFormula; import com.fr.base.BaseUtils; import com.fr.base.Parameter; -import com.fr.cert.token.lang.Collections; import com.fr.data.DataConstants; import com.fr.data.condition.JoinCondition; import com.fr.data.condition.ListCondition; @@ -34,8 +33,6 @@ import com.fr.design.gui.ilist.CheckBoxList; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.javascript.JavaScriptActionPane; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.FRLeftFlowLayout; -import com.fr.design.layout.LeftCenterRightLayout; import com.fr.design.mainframe.DesignerContext; import com.fr.design.scrollruler.ModLineBorder; import com.fr.design.utils.gui.GUICoreUtils; @@ -53,6 +50,7 @@ import com.fr.write.config.DeleteConfig; import com.fr.write.config.InsertConfig; import com.fr.write.config.IntelliDMLConfig; import com.fr.write.config.UpdateConfig; +import sun.swing.table.DefaultTableCellHeaderRenderer; import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; @@ -66,6 +64,7 @@ import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTree; import javax.swing.ListSelectionModel; +import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableCellRenderer; @@ -152,27 +151,20 @@ public class DBManipulationPane extends BasicBeanPane { this.v_Types = v_Types; JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - //this.add(northPane, BorderLayout.NORTH); dmlConfigComboBox = new UIComboBox(DML_CONFIG_TYPES); - //JPanel typePane = GUICoreUtils.createFlowPane(new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":"), dmlConfigComboBox}, - // FlowLayout.LEFT, 10); JPanel typePane = new JPanel(new BorderLayout()); typePane.add(row(10, cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Choose_Submit_Type") + ":")), - cell(dmlConfigComboBox)).getComponent(), BorderLayout.WEST); + cell(dmlConfigComboBox)).getComponent()); typePane.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Submit_Type"))); - //northPane.add(typePane, BorderLayout.NORTH); chooseTable = new ChoosePaneSupportFormula(); chooseTable.setBorder(BorderFactory.createTitledBorder(new ModLineBorder(ModLineBorder.TOP), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Table"))); chooseTable.setTableNameComboBoxPopSize(160, 320); - //northPane.add(chooseTable, BorderLayout.CENTER); - // peter:编辑的TablePane JPanel editTablePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - //this.add(editTablePane, BorderLayout.CENTER); editTablePane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Value"))); editTablePane.setBounds(0, 0, FineUIScale.scale(280), FineUIScale.scale(180)); keyColumnValuesTable = new KeyColumnNameValueTable(); @@ -180,6 +172,9 @@ public class DBManipulationPane extends BasicBeanPane { keyColumnValuesTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); keyColumnValuesTable.setPreferredScrollableViewportSize(new Dimension(280, 150)); keyColumnValuesTable.setShowHorizontalLines(true); + DefaultTableCellHeaderRenderer headerRenderer = new DefaultTableCellHeaderRenderer(); + headerRenderer.setHorizontalAlignment(SwingConstants.LEFT); + keyColumnValuesTable.getTableHeader().setDefaultRenderer(headerRenderer); northPane.add(column(10, true, cell(typePane), @@ -215,15 +210,9 @@ public class DBManipulationPane extends BasicBeanPane { JPanel controlBtnPane = new JPanel(new BorderLayout()); editTablePane.add(GUICoreUtils.createBorderPane(controlBtnPane, BorderLayout.NORTH), BorderLayout.EAST); List buttonGroup = Arrays.stream(actions).map(action -> cell(new UIButton(action))).collect(Collectors.toList()); - /*for (UpdateAction action : actions) { - controlBtnPane.add(new UIButton(action)); - }*/ checkBoxUpdatePane = new JPanel(new BorderLayout(0, 0)); checkBoxUpdatePane.setPreferredSize(new Dimension(120, 20)); - //buttonGroup.add(cell(checkBoxUpdatePane)); - //controlBtnPane.add(column(5, buttonGroup.toArray(new Layouts.Cell[0])).getComponent()); - //controlBtnPane.add(checkBoxUpdatePane); UpdateCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_RWA_NotChange_Unmodified")); UIButton helpButton = new UIButton(HEIP_ICON); @@ -239,12 +228,8 @@ public class DBManipulationPane extends BasicBeanPane { } }); helpButton.set4ToolbarButton(); - //checkBoxUpdatePane.add(UpdateCheckBox, BorderLayout.WEST); - //checkBoxUpdatePane.add(helpButton, BorderLayout.EAST); buttonGroup.add(row(5, cell(UpdateCheckBox), cell(helpButton))); - //checkBoxUpdatePane.add(row(5, cell(UpdateCheckBox), - // cell(helpButton)).getComponent()); controlBtnPane.add(column(5, buttonGroup.toArray(new Layouts.Cell[0])).getComponent()); } } @@ -323,7 +308,6 @@ public class DBManipulationPane extends BasicBeanPane { DefaultTreeCellRenderer cr = (DefaultTreeCellRenderer) conditionsTree.getCellRenderer(); cr.setForeground(UIConstants.NORMAL_BACKGROUND); JScrollPane jp = new JScrollPane(conditionsTree); - addComponent(conditionPane, jp); UIButton addSubmitConditionButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Set_Submit_Condition")); addSubmitConditionButton.addActionListener(new ActionListener() { @@ -355,8 +339,11 @@ public class DBManipulationPane extends BasicBeanPane { JPanel controlBtnPane = new JPanel(new GridLayout(1, 1, 4, 4)); controlBtnPane.setPreferredSize(createControlBtnPanePreferredSize()); - conditionPane.add(GUICoreUtils.createBorderPane(controlBtnPane, BorderLayout.NORTH), setControlBtnPanePosition()); controlBtnPane.add(addSubmitConditionButton); + conditionPane.add(row( + cell(jp).weight(0.74), + column(cell(controlBtnPane).weight(0.5),cell(new UILabel()).weight(0.5)).weight(0.26) + ).getComponent()); return conditionPane; } @@ -698,6 +685,7 @@ public class DBManipulationPane extends BasicBeanPane { private void initJTableColumn() { TableColumn column0 = this.keyColumnValuesTable.getColumnModel().getColumn(0); column0.setMaxWidth(50); + column0.setCellRenderer(new ColumnNameTableCellRenderer()); TableColumn column1 = this.keyColumnValuesTable.getColumnModel().getColumn(1); column1.setCellRenderer(new ColumnNameTableCellRenderer()); @@ -1187,7 +1175,7 @@ public class DBManipulationPane extends BasicBeanPane { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - + this.setHorizontalAlignment(SwingConstants.LEFT); if (value instanceof ColumnName) { this.setText(((ColumnName) value).name); } @@ -1203,6 +1191,7 @@ public class DBManipulationPane extends BasicBeanPane { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + this.setHorizontalAlignment(SwingConstants.LEFT); if (value instanceof ColumnValue) { if (((ColumnValue) value).obj != null) { diff --git a/designer-base/src/main/resources/com/fr/design/images/data/hyperlink.png b/designer-base/src/main/resources/com/fr/design/images/data/hyperlink.png new file mode 100644 index 0000000000000000000000000000000000000000..0fae16edfd307b8152a83ab4356135a42f479d91 GIT binary patch literal 844 zcmV-S1GD^zP)oC4Xp)cpZTen6z|P5waCAJC+GRrV5oK-oGK(Mp|~Ox=Kt zNDwsyCHQ)08{(J;*oG|aCn4L<_a5K7`|j=;;C~0sduisj%7jkAKrF~J5%q}R3~1CC zod0OSeGxD>HuI>AW41M%jj2geN2&j*MpNU3i@{SNKB(xE6 z%biSgni{}%x7+MPLfj$X@BD;s^X%_>dH`>Ai<`L@WhTKM!u+x%)SV|o9gP3{veVp~ zwdkPpy+Mw%!#-)TR|-QDYT0bjf@KJ}yC>Xr7bWL#(L@p9Do9KSkTPt!B0*$@he=$S z@Bw0CLV#oGrkVrl8^pkb1Z#l+e?d&FMK#RiN)?vub8<#IVGsGwuOIdFbVcuqeNnZ$n(+?>R7jU91>AebgC4y>uTZ!zHR9QC-5q!I+02k)oxbBoDyL= z4SOuO(|J3L>WQg3k%3CsW{QA>BAtTm`yk=zt8_4zfR+RrpLBMyND%G&k8gr{&=Lre z;E7dMN_Cc9WD?xK*rtI9*1%Nuc-(+F7<41?>s^}XwDwT;{h#*hlfOW1RILTT1qV)vta z#R;M1&0drDELIAGL9O(c600d`2O+f$vv5yPTeLZYKROY-~ zJ6mYOhGsj3wqOVrJidWs0LnUNuCFHU@H4!?lDWbOvycb!4}}3`b}bchuIuZ7W!@Lk zNvC+u84q^f?wc1*TGu4)fHDAO_#-^xz22&vPi_2j=#hp~{^{&ksv>&^gP#5(6X~d#-#r2xlP@N2W(7itRP?Sgt<@OyTikEz#(ip4pO^w zFMCh@ggVCc6f>Vk(?sioi}_$h`jRGT%$#EIw4Qb7df-G*o4A8s^a+FMDA+Lbc<{Li zMO>@oY#*E)_Vbt`x{>#=U2y3G5kk6B+;tbCic+)N0yoM)Ts(+pN@`X%rDhj1*bF>8 zdu-0|tWeU85Hv~EM4sD5;DRCYjYPef7CqIE0F-*cS{*#hzAd_@Nw*drBy$H9ky@S! z8_RWSF4r@;cXM04rTXEN(tW=F<}SgRC{v?dcsDRh|R zJYmp3aU(V|z~exqu*~zK%$^@O!*mEJK)kRY_fa7BA6N@zh>}y&YybcN07*qoM6N<$ Eg4p6*`v3p{ literal 3609 zcmV+!4(9QRP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009-NklW6a3L5_aA87&F505#La`vU|A2T!lrCyojhUuNn%hjxr0FD`+joBFxTxv7e;;@j zkMiELyNRjEJ;3IB<0sw6pMCmsJQf>>$Kw^Y3q&y>pLGbS((#_H+^PK=EFaSt#tHQ8Z|nLYaA z(a7wTD`c)OxYl%9?`>*EYgo(XSYBPDqph{_Xm@w*#S0g3Vtd~`F+LLjXsw5hF~Rzc z6;g>5kM}3F_u#z4i=w%)k*3B*fZFWxGA1xos^QbX%sqtL*#SJ&6s+}e`ykd~$xn2odQ+_D}pfrN~`v>-+Ubb`2760oj{%Q9&0Vzcecsi%;7WyP9#+m ziPSAFE^X|8c)w8!w9zCJiTZqgv+&XM^bU}0h{po477r{eEz$MJfmC1&!NJbXiW6VC z;a3+n@*De7sT2xGC6g)^k4LSw(V9pEqYWa$t*tF;BQ=t$Pi!UX>d_9*rJ2h;Vr@q} z9!JFeui{WZBna@{W5r^fBNmHMDwoXnzyC6HWM~lWLx=bNfVEbv6{=x{Y%Yh0#W{yK zhqXd3mm>^AM1(N3#bUAC4xj~3e^1YO52JILIhUEsgq!*NcYn{$x@s8W#F4p{p;#_o z%49NI^Yimgp-v7DJ@qAk4s8__Ja*{NS7L3m6-gZK>pNzQ(Ml<-SOA_l*mu}@mo8N* z=_3P!XP$d<@NSJOYwP^*+plP2c - - 高级编辑 - - - - - - - \ No newline at end of file + + + + diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_bold.png b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_bold.png new file mode 100644 index 0000000000000000000000000000000000000000..51138933a79571ea32183c047a2a67dbf60fab04 GIT binary patch literal 611 zcmV-p0-XJcP)zHs3jhZIE?^(PZ~zRrWjiVih{}b9 zWLUBDc(ZFEQLytsiyQbGdw1XL{QKUUZw7eRTNgd`U?Fa`nRyqQmoO40blGM7>E&>Q zXUIJDz&UP0DVf~Iu9LCd51*ISuUezmU{$hMv?iSmSDMh z4v5C5M-xNt0n4?emDXGhcwL`K+Gkjnk~HUTAeREmuWLYo`p$pEaS3Oq(kx2cirA@SW@o3Irhgh0g}gZfFU{*!}Xw$G@BnVLo<&umHx;xeeEaojw2n002ovPDHLkV1ma#34{Ou literal 0 HcmV?d00001 diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_italic.png b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_italic.png new file mode 100644 index 0000000000000000000000000000000000000000..00d3176fb71f09a44ffe1c47d2f99611a14563ed GIT binary patch literal 445 zcmV;u0Yd(XP)9DPmr3yZ~)){8J~cQa1J;DZ~$@vl91XbutS+5g;m*${8Km?oUyc? zN#n2aj%BT$w0@ce1_sWIfCE?4;L|+ry3e3xnylyljYv2_Q`ph^{RJGjO!1&qK5M=c zQoevN1JQy&ugx)~MU=MWaw@?w>iWhP(pwcVQ9jq(pJms%jwLvRr1w}yvCZPW2{1{X zt4O@T61D&}xi8${7cu480+#SkKxSdNIMKKM-NdkjFMz~T733dqfF(dpg3#D#M1;NG zZrS?PNnxL7g7B)mMEP?yWM&ZOIjNe)Atn(hL7&VX|f7n n$%ztB0t?K^u-q^(a5nw`r%rplL>-uY00000NkvXXu0mjf`FOft literal 0 HcmV?d00001 diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_underline.png b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/new_underline.png new file mode 100644 index 0000000000000000000000000000000000000000..4a794e122f7dab58d4ebc026c254f57f94432cf9 GIT binary patch literal 476 zcmV<20VDp2P)ufS4GHl&DqYhuyRc zQ5ri@5e)tpTlRbZ`z${z0WkVwZ53^@cGqp}+4r?wJ50VpA4*6!*HZY{nX!zta#aAo zE(2fy41fVJ0EGaAFqI=BG@+zcIk@zw1c1cTuNYAuN)tdoP33-N0LIWK5GO!%So^34 znquvK4+tDlK8W9*$50jE^K~*6M%QwVXboGfW93!I7(_mlb0YLq@yaG-jBeyf#I!SG zFk%OXowc!IZ^m#WW7E?=U8(#LG$f7DvTjAVEFM@uck`s?%|9L%_uJS%aq9Ktj1yi8 z!=@}woL|K6FTq9tRuF*J01@4yI3juk;sc%Hr2u|F7R`vRNOWX#E{n=yqS?q(HJwpb zxmU1bcV#DQzk5B=I0`4{+0`}AkgEKKtCZ_m%Uj%z;5263fenhq=tp4m5A_W;sCHtr S@KCn^0000opzQ$?F3?_}Z~(YKn>6d}*f~b5valeQ zfcJ(O{~+6SY)qWCi+qyv^5*@`o1gCuz!oX&cAT+%umP;vdneboVRIu@%H7mM6^>j7(X5r?*q9+^e*sju1jZW<)C4F zsHH&2joC!W0EuRg0_ZOmH@@|B-$uiH&Emt9(k>!hYo$lQ*Qwij-aT06_eggV3a%T3 zyzVWlTAD$u$moYV8Rq3{$ABEp&8ZyD7P%zSeYt>qzYTT3?g{grX?XD1?jGM#EVo%L z3&dt0M+d+#@WzE)Z?*T25Y6||Jl#*n%YOwSk>a3ZMl+3pgo)gI=}lHXG&0v}J00eM zV?-1y^pmj)7f_*8DVRx%fG?!|rSv&ez_RFEo_k)^Yqh$6W2Mvr%lX8Ca{WRDetw(I zpaP386MxrsTv-!XBcyWO zRl_h8T9&<~C^1d*W3m>ZVTcRjJeTXvBR55eV!^oJsJ&t { JPanel reportEnginePane = new JPanel(new BorderLayout()); clientPaging = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Enable_Client_Page")); clientPaging.setSelected(false); - /*outPagingEngineSelectPane = new JPanel(); - outPagingEngineSelectPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - outPagingEngineSelectPane.setVisible(false); - outPagingEngineSelectPane.setPreferredSize(new Dimension(FineUIScale.scale(600), FineUIScale.scale(300))); - outPagingEngineSelectPane.add(createPagingEngineSelectPane());*/ clientPaging.addActionListener(new SelectActionListener(clientPaging, outPagingEngineSelectPane)); reportEnginePane.add(clientPaging); return reportEnginePane; @@ -133,17 +128,10 @@ public class ReportEnginePane extends BasicBeanPane { engineSettingPane.add(box(cell(outEngineXSettingPane), cell(outLineEngineSettingPane)).getComponent() , BorderLayout.WEST); - /*engineSettingPane.add(outEngineXSettingPane, JLayeredPane.DEFAULT_LAYER); - engineSettingPane.add(outLineEngineSettingPane, JLayeredPane.DEFAULT_LAYER);*/ - //engineSettingPane.moveToFront(outEngineXSettingPane); engineSettingPane.setVisible(true); - JPanel pagingEngineSelectPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); - pagingEngineSelectPane.add(createPagingEngineRadioPanel()); - pagingEngineSelectPane.add(engineSettingPane); - /*pagingEngineSelectPane.add(Layouts.column(10, - Layouts.cell(createPagingEngineSelectPane()), - Layouts.cell(engineSettingPane)) - .getComponent());*/ + JPanel pagingEngineSelectPane = new JPanel(new BorderLayout()); + pagingEngineSelectPane.add(createPagingEngineRadioPanel(), BorderLayout.NORTH); + pagingEngineSelectPane.add(engineSettingPane, BorderLayout.CENTER); return pagingEngineSelectPane; } diff --git a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java index 968dfdd896..6a915e58e2 100644 --- a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java @@ -51,18 +51,14 @@ public class WriteShortCutsPane extends JPanel{ contentPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10)); // 纵向布局,横向自适应 - /*contentPane.setLayout(new GridBagLayout()); + contentPane.setLayout(new GridBagLayout()); GridBagConstraints cons = new GridBagConstraints(); cons.fill = GridBagConstraints.HORIZONTAL; cons.weightx = 1; cons.gridx = 0; - cons.insets = new Insets(20, 0, 0, 0);*/ - contentPane.setLayout(new BorderLayout()); - contentPane.add(column(10, true, - cell(getFeatureNamePane()), - cell(getHintsPane())).getComponent()); - //contentPane.add(getFeatureNamePane()); - //contentPane.add(getHintsPane()); + cons.insets = new Insets(20, 0, 0, 0); + contentPane.add(getFeatureNamePane(), cons); + contentPane.add(getHintsPane(), cons); return contentPane; } @@ -80,20 +76,16 @@ public class WriteShortCutsPane extends JPanel{ JPanel switchBtnPane = getSwitchBtnPane(); nextRowHK = new UILabel(nextRowString, SwingConstants.CENTER); - JPanel centerPane = new JPanel(new FlowLayout(FlowLayout.CENTER)); + JPanel centerPane = new JPanel(new GridLayout(2, 4, 0, 0)); centerPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0)); - /*centerPane.add(name); + centerPane.add(name); centerPane.add(nextCol); centerPane.add(new JPanel()); centerPane.add(nextRow); centerPane.add(shortName); centerPane.add(nextColHK); centerPane.add(switchBtnPane); - centerPane.add(nextRowHK);*/ - centerPane.add(column(20, true, - row(50, cell(name), cell(nextCol), flex(), cell(nextRow)), - row(50, cell(shortName), cell(nextColHK), cell(switchBtnPane), cell(nextRowHK)) - ).getComponent()); + centerPane.add(nextRowHK); featureNamePane.add(centerPane, BorderLayout.CENTER); @@ -123,22 +115,16 @@ public class WriteShortCutsPane extends JPanel{ preCol = new UILabel("Shift+" + nextColString, SwingConstants.CENTER); preRow = new UILabel("Shift+" + nextRowString, SwingConstants.CENTER); - JPanel centerPane = new JPanel(new FlowLayout(FlowLayout.CENTER)); + JPanel centerPane = new JPanel(new GridLayout(2, 3, 0, V_GAP)); centerPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 100)); - /*centerPane.add(systemDefault); + centerPane.add(systemDefault); centerPane.add(preColText); centerPane.add(preCol); centerPane.add(new JPanel()); centerPane.add(preRowText); - centerPane.add(preRow);*/ - centerPane.add(row(80, - column(flex(), cell(systemDefault), flex()), - column(20, - row(80, cell(preColText), cell(preCol)), - row(80, cell(preRowText), cell(preRow))) - ).getComponent()); + centerPane.add(preRow); hintsPane.add(centerPane, BorderLayout.CENTER); diff --git a/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java b/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java index 5d9a050c8a..708fef7a86 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/ReportWriteAttrPane.java @@ -1,5 +1,6 @@ package com.fr.design.webattr; +import com.fr.design.gui.frpane.FineTabbedPane; import com.fr.design.gui.frpane.LoadingBasicPane; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.layout.FRGUIPaneFactory; @@ -40,8 +41,6 @@ public class ReportWriteAttrPane extends LoadingBasicPane { @Override protected synchronized void initComponents(JPanel container) { container.setLayout(FRGUIPaneFactory.createBorderLayout()); - final UITabbedPane tabbedPane = new UITabbedPane(SwingConstants.TOP, JTabbedPane.WRAP_TAB_LAYOUT); - container.add(tabbedPane, BorderLayout.CENTER); // peter: writeSQLAttrList的编辑. if (submiterListPane == null) { @@ -53,9 +52,15 @@ public class ReportWriteAttrPane extends LoadingBasicPane { } writeShortCutsPane = new WriteShortCutsPane(); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Submit"), submiterListPane); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Verify_Data_Verify"), verifierListPane); - tabbedPane.addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Writer_ShortCuts_Setting"), writeShortCutsPane); + final FineTabbedPane tabbedPane = FineTabbedPane.builder() + .addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Submit"), submiterListPane) + .addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Verify_Data_Verify"), verifierListPane) + .addTab(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Writer_ShortCuts_Setting"), writeShortCutsPane) + .withHeadRatio(0.5f) + .build(); + container.setPreferredSize(this.getPreferredSize()); + container.add(tabbedPane, BorderLayout.CENTER); + } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java b/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java index 71dbd52603..bd2003bf5f 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java @@ -7,7 +7,9 @@ import com.fr.design.dialog.AttrScrollPane; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicScrollPane; import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.frpane.FineTabbedPane; import com.fr.design.gui.ibutton.UIHeadGroup; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.widget.mobile.WidgetMobilePane; @@ -34,9 +36,7 @@ public class CellWidgetCardPane extends BasicPane { private WidgetMobilePane currentWidgetMobilePane; //属性配置切换面板 private ArrayList paneList; - private JPanel center; - private UIHeadGroup tabsHeaderIconPane; - private CardLayout tabbedPane; + private FineTabbedPane tabsPane; private BasicWidgetPropertySettingPane widgetPropertyPane; //通用属性容器 @@ -64,22 +64,8 @@ public class CellWidgetCardPane extends BasicPane { this.removeAll(); this.setLayout(FRGUIPaneFactory.createBorderLayout()); - tabbedPane = new CardLayout(); - center = new JPanel(tabbedPane); final String[] tabTitles = new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Attribute"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Event"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Mobile_Terminal")}; - tabsHeaderIconPane = new UIHeadGroup(tabTitles) { - @Override - public void tabChanged(int index) { - tabbedPane.show(center, tabTitles[index]); - } - }; - - JPanel wrapperPane = new JPanel(new BorderLayout()); - wrapperPane.add(tabsHeaderIconPane, BorderLayout.NORTH); - wrapperPane.add(center, BorderLayout.CENTER); - wrapperPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 10)); - this.add(wrapperPane, BorderLayout.CENTER); // 属性 attriTabPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); @@ -111,10 +97,17 @@ public class CellWidgetCardPane extends BasicPane { mobileCardPane = FRGUIPaneFactory.createCardLayout_S_Pane(); mobileTabPane.add(mobileCardPane, BorderLayout.CENTER); mobileCardLayout = (CardLayout) mobileCardPane.getLayout(); + tabsPane = FineTabbedPane.builder() + .addTab(tabTitles[0], basicScrollPane) + .addTab(tabTitles[1], eventTabPane) + .addTab(tabTitles[2], mobileTabPane) + .build(); + JPanel wrapperPane = new JPanel(new BorderLayout()); + wrapperPane.add(tabsPane, BorderLayout.NORTH); + wrapperPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 10)); + wrapperPane.setOpaque(false); + this.add(wrapperPane, BorderLayout.CENTER); - center.add(basicScrollPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Attribute")); - center.add(eventTabPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Event")); - center.add(mobileTabPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Mobile_Terminal")); initPaneList(); } @@ -161,7 +154,7 @@ public class CellWidgetCardPane extends BasicPane { currentWidgetMobilePane = mobilePane; - tabsHeaderIconPane.setSelectedIndex(0); + //tabsHeaderIconPane.setSelectedIndex(0); } public Widget update() { diff --git a/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java b/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java index c7b24c3cd9..a145078d1e 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java @@ -1,18 +1,21 @@ package com.fr.design.widget; -import java.awt.BorderLayout; +import java.awt.*; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.UserDefinedWidgetConfig; +import javax.swing.*; + public class UserDefinedWidgetConfigPane extends BasicBeanPane { private ValueWidgetPane editorDefPane; public UserDefinedWidgetConfigPane(){ this.setLayout(FRGUIPaneFactory.createBorderLayout()); editorDefPane = new ValueWidgetPane(); - this.add(editorDefPane, BorderLayout.CENTER); + this.add(new UIScrollPane(editorDefPane), BorderLayout.CENTER); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/ValueWidgetPane.java b/designer-realize/src/main/java/com/fr/design/widget/ValueWidgetPane.java index b941b02efa..38316cbd76 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ValueWidgetPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ValueWidgetPane.java @@ -15,6 +15,11 @@ import com.fr.form.ui.WidgetValue; import java.awt.*; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.flex; + public class ValueWidgetPane extends WidgetPane { private JPanel widgetValuePane; private WidgetValueEditor widgetValueEditor; @@ -27,18 +32,24 @@ public class ValueWidgetPane extends WidgetPane { public JPanel initNorthPane(){ JPanel northPane = super.initNorthPane(); - label = new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Value")+ ":"); + label = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Widget_Value")); label.setVisible(false); - widgetValuePane = new JPanel(); - widgetValuePane.setLayout(FRGUIPaneFactory.createBorderLayout()); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {p, p, f}; - double[] rowSize = {p}; - Component[][] components = new Component[][]{ - new Component[]{northPane, label,widgetValuePane}, - }; - JPanel jPanel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + widgetValuePane = new JPanel(new BorderLayout()); + + JPanel centerPane = new JPanel(new BorderLayout()); + centerPane.setOpaque(false); + widgetValuePane.setOpaque(false); + centerPane.add(row( + cell(label).weight(68), + cell(widgetValuePane).weight(372)).getComponent() + ); + JPanel jPanel = new JPanel(); + jPanel.setBackground(Color.WHITE); + jPanel.setLayout(new BorderLayout()); + jPanel.add(column(10, true, + cell(northPane), + cell(centerPane) + ).getComponent()); return jPanel; } diff --git a/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java b/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java index 80ba33ef26..609f9f29bb 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java @@ -80,8 +80,8 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener this.add(column( 10, - cell(northPane), - cell(cellEditorCardPane).weight(1) + cell(northPane).weight(0.08), + cell(cellEditorCardPane).weight(0.92) ).getComponent() ); } @@ -90,8 +90,8 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener return column( row( - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Select_Widget"))).weight(LEFT_WEIGHT), - cell(editorTypeComboBox).weight(RIGHT_WEIGHT) + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Select_Widget"))).weight(68), + cell(editorTypeComboBox).weight(372) ) ).getComponent(); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/BasicWidgetPropertySettingPane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/BasicWidgetPropertySettingPane.java index c7ff5fdddb..8ba27909f2 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/BasicWidgetPropertySettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/BasicWidgetPropertySettingPane.java @@ -15,8 +15,6 @@ import java.awt.BorderLayout; import static com.fine.swing.ui.layout.Layouts.cell; import static com.fine.swing.ui.layout.Layouts.column; import static com.fine.swing.ui.layout.Layouts.row; -import static com.fr.design.constants.LayoutConstants.LEFT_WEIGHT; -import static com.fr.design.constants.LayoutConstants.RIGHT_WEIGHT; public class BasicWidgetPropertySettingPane extends BasicPane { @@ -33,13 +31,11 @@ public class BasicWidgetPropertySettingPane extends BasicPane { widgetNameComboBox = new ParameterTreeComboBox(); widgetNameComboBox.refreshTree(); - this.add(column(LayoutConstants.VERTICAL_GAP, - row( - cell(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Widget_Name"))).weight(LEFT_WEIGHT), - cell(widgetNameComboBox).weight(RIGHT_WEIGHT) - ), - cell(enableCheckBox), - cell(visibleCheckBox) + this.add(row(LayoutConstants.HORIZONTAL_GAP, + cell(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Widget_Name"))).weight(0.2), + cell(widgetNameComboBox).weight(0.6), + cell(enableCheckBox).weight(0.1), + cell(visibleCheckBox).weight(0.1) ).getComponent()); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java b/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java index 75f3f06d2c..454337d3f0 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/ui/DateEditorDefinePane.java @@ -1,9 +1,8 @@ package com.fr.design.widget.ui; +import com.fine.theme.light.ui.FineRoundBorder; import com.formdev.flatlaf.ui.FlatUIUtils; -import com.fr.base.FRContext; import com.fr.data.core.FormatField; -import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; @@ -20,10 +19,9 @@ import com.fr.stable.ArrayUtils; import javax.swing.JPanel; import javax.swing.SwingConstants; -import javax.swing.border.TitledBorder; -import java.awt.BorderLayout; -import java.awt.CardLayout; -import java.awt.Color; +import javax.swing.border.EmptyBorder; +import javax.swing.plaf.BorderUIResource; +import java.awt.*; import java.text.SimpleDateFormat; import java.util.Date; @@ -67,7 +65,7 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane Date: Mon, 29 Jul 2024 18:33:22 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86/?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5/=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/datapane/ChoosePane.java | 23 ++++--------------- .../frpane/ReportletParameterViewPane.java | 5 ++++ .../hyperlink/ReportletHyperlinkPane.java | 14 +++++------ .../fr/design/hyperlink/WebHyperlinkPane.java | 22 +++++++----------- .../hyperlink/popup/StyleSettingPane.java | 9 ++------ 5 files changed, 26 insertions(+), 47 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java index 1011d3f254..96ab6bd724 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java @@ -1,8 +1,5 @@ package com.fr.design.data.datapane; -import com.fine.swing.ui.layout.Layouts; -import com.fine.theme.light.ui.FineRoundBorder; -import com.fine.theme.utils.FineUIScale; import com.fr.base.TableData; import com.fr.data.core.DataCoreUtils; import com.fr.data.core.db.DBUtils; @@ -14,7 +11,6 @@ import com.fr.data.impl.DBTableData; import com.fr.data.operator.DataOperator; import com.fr.design.DesignerEnvManager; import com.fr.design.beans.BasicBeanPane; -import com.fr.design.border.FineBorderFactory; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.RefreshLabel.Refreshable; import com.fr.design.data.datapane.preview.PreviewLabel; @@ -43,7 +39,6 @@ import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; import com.fr.workspace.server.connection.DBConnectAuth; -import groovy.swing.factory.BoxLayoutFactory; import javax.swing.JList; import javax.swing.JOptionPane; @@ -59,7 +54,9 @@ import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; @@ -71,10 +68,6 @@ import java.util.List; import java.util.Set; import java.util.concurrent.CancellationException; -import static com.fine.swing.ui.layout.Layouts.cell; -import static com.fine.swing.ui.layout.Layouts.row; -import static com.fine.swing.ui.layout.Layouts.scale; - /** * @author zhou * @since 2012-7-11下午4:49:39 @@ -246,15 +239,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha double p = TableLayout.PREFERRED; double f = TableLayout.FILL; JPanel northDSPane = TableLayoutHelper.createTableLayoutPane(coms, new double[]{p}, new double[]{p, f, p, f, p, f, COLUMN_SIZE, COLUMN_SIZE}); - //JPanel northDSPane = new JPanel(new BorderLayout()); - - /*northDSPane.add( - row(10, - row(5, cell(l1), cell(dsNameComboBox)), - row(5, cell(l2), cell(schemaBox)), - row(5, cell(l3), cell(tableNameComboBox)), - row(5, cell(new RefreshLabel(this)), cell(previewLabel))) - .getComponent());*/ + this.add(northDSPane, BorderLayout.CENTER); } diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java index 369f2ef63b..4cc08c6a6c 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/ReportletParameterViewPane.java @@ -49,6 +49,11 @@ public class ReportletParameterViewPane extends BasicPane { this(null, useParaType, valueEditorPane, valueRenderPane, null); } + public ReportletParameterViewPane(int useParaType, ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane, + JPanel otherPane) { + this(null, useParaType, valueEditorPane, valueRenderPane, otherPane); + } + public ReportletParameterViewPane(UITableEditAction[] actions, int useParaType, ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane) { this.initComponent(actions, useParaType, valueEditorPane, valueRenderPane, null); diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java index 8efb32aba3..6b3d3252c3 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java @@ -50,25 +50,25 @@ public class ReportletHyperlinkPane extends AbstractHyperLinkPane { @@ -44,18 +40,16 @@ public class WebHyperlinkPane extends AbstractHyperLinkPane { this.setBorder(BorderFactory.createEmptyBorder(BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH, BORDER_WIDTH)); northPane = new WebHyperNorthPane(needRenamePane()); - //this.add(northPane, BorderLayout.NORTH); - - parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane()); - //this.add(parameterViewPane, BorderLayout.CENTER); + extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters")); + JPanel extendPane = new JPanel(); + extendPane.add(extendParametersCheckBox); + parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), + getValueEditorPane(), extendPane); parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Toolkit.i18nText("Fine-Design_Basic_Parameters"), null)); - extendParametersCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Extends_Report_Parameters")); - //this.add(GUICoreUtils.createFlowPane(new Component[]{extendParametersCheckBox}, FlowLayout.LEFT), BorderLayout.SOUTH); this.add(column( cell(northPane), - cell(parameterViewPane).weight(1.0), - cell(extendParametersCheckBox) + cell(parameterViewPane).weight(1.0) ).getComponent()); } diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java index 6ca7048af1..531efa35dc 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/popup/StyleSettingPane.java @@ -7,9 +7,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.style.color.NewColorSelectBox; -import com.fr.design.utils.gui.GUICoreUtils; import com.fr.js.MobilePopupHyperlink; import com.fr.stable.StringUtils; @@ -81,14 +79,12 @@ public class StyleSettingPane extends BasicBeanPane { borderPane.setLayout(new BorderLayout()); borderType = new LineComboBox(MobilePopupConstants.BORDER_LINE_STYLE_ARRAY); - borderType.setPreferredSize(new Dimension(115, 20)); borderColor = new NewColorSelectBox(100); borderRadiusSpinner = new UISpinner(0, maxBorderRadius, 1, 20); - borderRadiusSpinner.setPreferredSize(new Dimension(120, 20)); - JLabel label = new JLabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Border")); + UILabel borderLabel = new UILabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Border")); borderPane.add(row(40, column(10, - cell(label).weight(0.3), + cell(borderLabel).weight(0.3), flex().weight(0.7)), column(10, cell(MobilePopupUIUtils.createLeftTileRightContentPanel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Line"), borderType, Color.GRAY)), @@ -106,7 +102,6 @@ public class StyleSettingPane extends BasicBeanPane { JPanel transparencyPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); this.numberDragPane = new UINumberDragPane(0,100); - this.numberDragPane.setPreferredSize(new Dimension(140, 20)); transparencyPane.add(numberDragPane, BorderLayout.CENTER); transparencyPane.add(new UILabel(" %"), BorderLayout.EAST); JLabel bgLabel = new JLabel(Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup_Background")); From b903883399e97874ffccffee05a5d20818d7c13d Mon Sep 17 00:00:00 2001 From: renekton Date: Mon, 29 Jul 2024 18:51:24 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86/?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5/=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/itableeditorpane/UITableEditorPane.java | 5 +++-- .../design/hyperlink/ReportletHyperlinkPane.java | 5 ++--- .../design/mainframe/EastRegionContainerPane.java | 1 - .../mainframe/widget/editors/DataTableEditor.java | 4 ++-- .../com/fr/design/write/submit/CustomJobPane.java | 9 --------- .../design/actions/server/WidgetManagerAction.java | 2 +- .../design/cell/smartaction/SmartJTablePane.java | 4 +++- .../com/fr/design/report/WriteShortCutsPane.java | 14 +++++++------- .../design/widget/UserDefinedWidgetConfigPane.java | 4 +--- .../submit/SmartInsertDBManipulationPane.java | 7 ++++++- 10 files changed, 25 insertions(+), 30 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index 9e8faf3944..f9cd308a3d 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java @@ -8,9 +8,10 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import sun.swing.table.DefaultTableCellHeaderRenderer; -import javax.swing.*; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.SwingConstants; import javax.swing.event.TableModelListener; -import javax.swing.table.DefaultTableCellRenderer; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Insets; diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java index 6b3d3252c3..d7d9817b55 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperlinkPane.java @@ -1,12 +1,10 @@ package com.fr.design.hyperlink; -import com.fine.theme.light.ui.FineRoundBorder; import com.fr.base.BaseUtils; import com.fr.base.Parameter; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.frpane.ReportletParameterViewPane; import com.fr.design.gui.icheckbox.UICheckBox; -import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.itableeditorpane.ParameterTableModel; import com.fr.design.gui.itableeditorpane.UITableEditAction; import com.fr.design.i18n.Toolkit; @@ -18,7 +16,8 @@ import com.fr.js.ReportletHyperlink; import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.JOptionPane; +import javax.swing.JPanel; import java.awt.event.ActionEvent; import java.util.HashMap; import java.util.List; diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index 818665b989..6d33c5946b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -890,7 +890,6 @@ public class EastRegionContainerPane extends UIEastResizableContainer { propertyPanel = new JPanel(); contentPane = generateContentPane(); popupToolPane = new PopupToolPane(this, PopupToolPane.DOWN_BUTTON); - popupToolPane.setPreferredSize(new Dimension(0, 34)); headerPane = new JPanel(); headerPane.setPreferredSize(new Dimension(headerPane.getPreferredSize().width, 0)); // 默认隐藏 contentArea = new JPanel(new BorderLayout()); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/widget/editors/DataTableEditor.java b/designer-base/src/main/java/com/fr/design/mainframe/widget/editors/DataTableEditor.java index 9e3adf672c..de85b63041 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/widget/editors/DataTableEditor.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/widget/editors/DataTableEditor.java @@ -12,8 +12,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.editor.editor.Editor; import com.fr.form.data.DataTableConfig; - -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Dimension; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; diff --git a/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java b/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java index a7204f4467..5b0cd2c3b6 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/CustomJobPane.java @@ -41,7 +41,6 @@ public abstract class CustomJobPane extends BasicBeanPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel reportletNamePane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(); classNameTextField = new UITextField(); - //reportletNamePane.add(classNameTextField); UIButton browserButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")); browserButton.setPreferredSize(new Dimension( @@ -53,8 +52,6 @@ public abstract class CustomJobPane extends BasicBeanPane { GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 40, classNameTextField.getPreferredSize().height)); - /*reportletNamePane.add(browserButton); - reportletNamePane.add(editButton);*/ UITextArea area = new UITextArea(2, 1); browserButton.addActionListener(new ActionListener() { @@ -101,18 +98,12 @@ public abstract class CustomJobPane extends BasicBeanPane { cell(browserButton).weight(0.1), cell(editButton).weight(0.1) ).getComponent()); - //this.add(reportletNamePane, BorderLayout.NORTH); objectProperiesPane = new ObjectProperiesPane(); objectProperiesPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Property"), null)); - //this.add(objectProperiesPane, BorderLayout.CENTER); - - //UITextArea area = new UITextArea(2, 1); - //area.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Extend_Class", "com.fr.data.AbstractSubmitTask")); JPanel dsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); dsPane.add(area); dsPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Job_Description"), null)); - //this.add(dsPane, BorderLayout.SOUTH); this.add(column( cell(reportletNamePane), cell(objectProperiesPane).weight(1.0), diff --git a/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java b/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java index cd14fb63b4..d551285f32 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java @@ -16,7 +16,7 @@ import com.fr.transaction.Configurations; import com.fr.transaction.WorkerFacade; import javax.swing.KeyStroke; -import java.awt.*; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; diff --git a/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java b/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java index 7e0ff5a4ed..4d9ef68670 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java +++ b/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java @@ -5,7 +5,9 @@ import java.awt.Window; import com.fr.design.gui.ilable.UILabel; -import javax.swing.*; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.SwingConstants; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.AbstractTableModel; diff --git a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java index 6a915e58e2..4c7c03d2c5 100644 --- a/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/WriteShortCutsPane.java @@ -14,16 +14,16 @@ import com.fr.transaction.WorkerAdaptor; import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.SwingConstants; -import java.awt.*; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.GridLayout; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import static com.fine.swing.ui.layout.Layouts.column; -import static com.fine.swing.ui.layout.Layouts.cell; -import static com.fine.swing.ui.layout.Layouts.flex; -import static com.fine.swing.ui.layout.Layouts.row; - - public class WriteShortCutsPane extends JPanel{ private static final int V_GAP = 20; private static final int MAX_LABEL_WIDTH = 100; diff --git a/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java b/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java index a145078d1e..91f10f23dc 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java @@ -1,13 +1,11 @@ package com.fr.design.widget; -import java.awt.*; - import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.UserDefinedWidgetConfig; -import javax.swing.*; +import java.awt.BorderLayout; public class UserDefinedWidgetConfigPane extends BasicBeanPane { private ValueWidgetPane editorDefPane; diff --git a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java index e403e9179c..7d0dc693ec 100644 --- a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java +++ b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java @@ -33,7 +33,12 @@ import com.fr.stable.ColumnRowGroup; import com.fr.stable.StringUtils; import com.fr.write.DMLConfigJob; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JDialog; +import javax.swing.JTable; +import javax.swing.SwingConstants; +import javax.swing.SwingUtilities; +import javax.swing.SwingWorker; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableColumn; import java.awt.BorderLayout; From bd330de3b5fd9cd57616862a5ec22071b9948115 Mon Sep 17 00:00:00 2001 From: renekton Date: Mon, 29 Jul 2024 20:07:58 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86/?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5/=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/controlpane/JListControlPane.java | 3 +++ .../com/fr/design/widget/CellWidgetCardPane.java | 12 +++--------- .../design/widget/UserDefinedWidgetConfigPane.java | 3 +-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java index 3dec4e1c32..db31287ee1 100644 --- a/designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java @@ -3,6 +3,7 @@ package com.fr.design.gui.controlpane; import com.fine.theme.icon.LazyIcon; import com.fine.theme.light.ui.FineRoundBorder; import com.formdev.flatlaf.ui.FlatUIUtils; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.beans.BasicBeanPane; import com.fr.design.border.FineBorderFactory; import com.fr.design.dialog.FineJOptionPane; @@ -368,6 +369,8 @@ public abstract class JListControlPane extends JControlPane implements ListContr setLayout(new BorderLayout()); this.textLabel = new JLabel(); this.iconLabel = new JLabel(); + this.textLabel.setBorder(new ScaledEmptyBorder(0, 4, 0, 0)); + this.iconLabel.setBorder(new ScaledEmptyBorder(0, 4, 0, 0)); add(this.textLabel, BorderLayout.CENTER); add(this.iconLabel, BorderLayout.WEST); this.iconLabel.setBackground(FlatUIUtils.getUIColor("List.cellRender.background", Color.WHITE)); diff --git a/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java b/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java index bd2003bf5f..d99058d205 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java @@ -69,12 +69,6 @@ public class CellWidgetCardPane extends BasicPane { // 属性 attriTabPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - BasicScrollPane basicScrollPane = new AttrScrollPane() { - @Override - protected JPanel createContentPane() { - return attriTabPane; - } - }; widgetPropertyPane = new BasicWidgetPropertySettingPane(); UIExpandablePane basicPane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Basic"), 280, 24, widgetPropertyPane); attriCardPane = FRGUIPaneFactory.createCardLayout_S_Pane(); @@ -98,12 +92,12 @@ public class CellWidgetCardPane extends BasicPane { mobileTabPane.add(mobileCardPane, BorderLayout.CENTER); mobileCardLayout = (CardLayout) mobileCardPane.getLayout(); tabsPane = FineTabbedPane.builder() - .addTab(tabTitles[0], basicScrollPane) + .addTab(tabTitles[0], new UIScrollPane(attriTabPane)) .addTab(tabTitles[1], eventTabPane) .addTab(tabTitles[2], mobileTabPane) .build(); JPanel wrapperPane = new JPanel(new BorderLayout()); - wrapperPane.add(tabsPane, BorderLayout.NORTH); + wrapperPane.add(tabsPane, BorderLayout.CENTER); wrapperPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 10)); wrapperPane.setOpaque(false); this.add(wrapperPane, BorderLayout.CENTER); @@ -115,7 +109,7 @@ public class CellWidgetCardPane extends BasicPane { private void initPaneList() { paneList = new ArrayList(); paneList.add(attriTabPane); - paneList.add(eventPane); + paneList.add(eventTabPane); paneList.add(mobileTabPane); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java b/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java index 91f10f23dc..acea484e1a 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/UserDefinedWidgetConfigPane.java @@ -1,7 +1,6 @@ package com.fr.design.widget; import com.fr.design.beans.BasicBeanPane; -import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.ui.UserDefinedWidgetConfig; @@ -13,7 +12,7 @@ public class UserDefinedWidgetConfigPane extends BasicBeanPane Date: Tue, 30 Jul 2024 10:41:36 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86/?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5/=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/hyperlink/ReportletHyperNorthPane.java | 8 ++++---- .../com/fr/design/hyperlink/popup/ContentSettingPane.java | 2 -- .../com/fr/design/hyperlink/popup/MobilePopupUIUtils.java | 8 ++++++++ .../main/java/com/fr/design/headerfooter/ImagePane.java | 3 ++- .../main/java/com/fr/design/report/ReportEnginePane.java | 7 ------- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java index 2b757db6df..df7374e757 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java @@ -370,19 +370,19 @@ public class ReportletHyperNorthPane extends AbstractHyperNorthPane dialogComponents) {// 对话框大小 - final JPanel sizeJPanel = new JPanel(new BorderLayout()); + final JPanel sizePane = new JPanel(new BorderLayout()); UILabel heightLabel = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Height")); UISpinner heightTextFiled = new UISpinner(0, Integer.MAX_VALUE, 1, DEFAULT_H_VALUE); this.setHeightTextFiled(heightTextFiled); UILabel widthLabel = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Designer_Width")); UISpinner widthTextFiled = new UISpinner(0, Integer.MAX_VALUE, 1, DEFAULT_V_VALUE); this.setWidthTextFiled(widthTextFiled); - sizeJPanel.add(column(8, + sizePane.add(column(8, row(10, cell(heightLabel).weight(0.2), cell(heightTextFiled).weight(0.8)), row(10, cell(widthLabel).weight(0.2), cell(widthTextFiled).weight(0.8)) ).getComponent()); - sizeJPanel.setVisible(true); - dialogComponents.add(new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Dialog_Size")), sizeJPanel}); + sizePane.setVisible(true); + dialogComponents.add(new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Dialog_Size")), sizePane}); } private void initDialogLocationPanel(List dialogComponents) { diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java index 2b5f42398f..07be5714a4 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/popup/ContentSettingPane.java @@ -138,12 +138,10 @@ public class ContentSettingPane extends AbstractHyperLinkPane { radioButtons.get(0).setSelected(ob.getEngineState() == LayerReportAttr.ENGINE_X); radioButtons.get(1).setSelected(ob.getEngineState() == LayerReportAttr.LINE_ENGINE); if (ob.getEngineState() == LayerReportAttr.ENGINE_X) { - //engineSettingPane.moveToFront(outEngineXSettingPane); outEngineXSettingPane.setVisible(true); outLineEngineSettingPane.setVisible(false); engineXCountPerPageEditor.setValue(new Integer(ob.getCountPerPage())); engineXPageQueryBox.setSelected(ob.isPageQuery()); engineXPageQueryPane.setVisible(ob.isPageQuery()); } else { - //engineSettingPane.moveToFront(outLineEngineSettingPane); outEngineXSettingPane.setVisible(false); outLineEngineSettingPane.setVisible(true); lineEngineCountPerPageEditor.setValue(new Integer(ob.getCountPerPage())); @@ -380,7 +374,6 @@ public class ReportEnginePane extends BasicBeanPane { target.setVisible(true); showTarget.setVisible(true); notShowTarget.setVisible(false); - //target.moveToFront(showTarget); } else { target.setVisible(false); } From 877289dbb63173c0ac3de4e7db961c37578087cc Mon Sep 17 00:00:00 2001 From: renekton Date: Tue, 30 Jul 2024 11:52:31 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86/?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5/=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/fun/impl/AbstractHyperlinkProvider.java | 2 +- .../gui/itableeditorpane/UITableEditorPane.java | 6 +++--- .../fr/design/hyperlink/ReportletHyperNorthPane.java | 6 ++---- .../fr/design/hyperlink/popup/CustomFontPane.java | 6 +++--- .../com/fr/design/images/data/hyperlink.svg | 11 +++++++++++ .../com/fr/design/images/data/user_widget.svg | 10 ++++++++++ .../com/fr/design/images/m_format/cellstyle/bold.svg | 3 +++ .../fr/design/images/m_format/cellstyle/italic.svg | 3 +++ .../design/images/m_format/cellstyle/underline.svg | 3 +++ .../com/fr/design/module/ChartHyperlinkGroup.java | 8 ++++---- .../com/fr/design/module/FormHyperlinkGroup.java | 6 +++--- .../java/com/fr/design/widget/WidgetConfigPane.java | 2 +- .../main/java/com/fr/design/widget/WidgetPane.java | 4 ++-- .../java/com/fr/start/module/DesignerActivator.java | 12 ++++++------ 14 files changed, 55 insertions(+), 27 deletions(-) create mode 100644 designer-base/src/main/resources/com/fr/design/images/data/hyperlink.svg create mode 100644 designer-base/src/main/resources/com/fr/design/images/data/user_widget.svg create mode 100644 designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold.svg create mode 100644 designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic.svg create mode 100644 designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline.svg diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java index 2527d64621..57e31c52f8 100644 --- a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractHyperlinkProvider.java @@ -26,7 +26,7 @@ public abstract class AbstractHyperlinkProvider extends AbstractProvider impleme @Override public NameableCreator createHyperlinkCreator() { - return new NameObjectCreator(text(), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), target(), appearance()); + return new NameObjectCreator(text(), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), target(), appearance()); } @Override diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index 23d90bed2f..4319025013 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java @@ -39,7 +39,6 @@ public class UITableEditorPane extends BasicPane { public UITableEditorPane(UITableModelAdapter model) { this.tableModel = model; this.initComponent(model.createAction()); - this.editTable.getTableHeader().setDefaultRenderer(new TableHeaderRenderer()); } public UITableEditorPane(UITableModelAdapter model, JPanel panel) { @@ -51,7 +50,6 @@ public class UITableEditorPane extends BasicPane { leftLabelName = s; this.tableModel = model; this.initComponent(model.createAction()); - this.editTable.getTableHeader().setDefaultRenderer(new TableHeaderRenderer()); } protected void initComponent(UITableEditAction[] action) { @@ -78,7 +76,9 @@ public class UITableEditorPane extends BasicPane { pane.add(controlPane, BorderLayout.NORTH); - } + this.editTable.getTableHeader().setDefaultRenderer(new TableHeaderRenderer()); + + } public UITableModelAdapter getTableModel() { return tableModel; diff --git a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java index df7374e757..57db2f06f5 100644 --- a/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java +++ b/designer-base/src/main/java/com/fr/design/hyperlink/ReportletHyperNorthPane.java @@ -378,8 +378,8 @@ public class ReportletHyperNorthPane extends AbstractHyperNorthPane + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/images/data/user_widget.svg b/designer-base/src/main/resources/com/fr/design/images/data/user_widget.svg new file mode 100644 index 0000000000..af4281adf2 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/data/user_widget.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold.svg new file mode 100644 index 0000000000..4aa1b6c071 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/bold.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic.svg new file mode 100644 index 0000000000..3d53d5ffe8 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/italic.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline.svg b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline.svg new file mode 100644 index 0000000000..326f2fa6e0 --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/images/m_format/cellstyle/underline.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java b/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java index d9eb5bc87f..e81c4de238 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java @@ -42,10 +42,10 @@ public class ChartHyperlinkGroup extends BaseHyperlinkGroup { FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class); NameableCreator[] related4ChartHyper = { - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Float_Chart"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ChartHyperPoplink.class, ChartHyperPoplinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Cell"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Float"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ChartHyperRelateFloatLink.class, ChartHyperRelateFloatLinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Hyperlink_Form_Link"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), formHyperlink.getClass(), FormHyperlinkPane.class)}; + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Float_Chart"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ChartHyperPoplink.class, ChartHyperPoplinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Cell"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Float"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ChartHyperRelateFloatLink.class, ChartHyperRelateFloatLinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Hyperlink_Form_Link"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), formHyperlink.getClass(), FormHyperlinkPane.class)}; return ArrayUtils.addAll(super.getHyperlinkCreators(), related4ChartHyper); } diff --git a/designer-chart/src/main/java/com/fr/design/module/FormHyperlinkGroup.java b/designer-chart/src/main/java/com/fr/design/module/FormHyperlinkGroup.java index 4e9411d745..12025a4115 100644 --- a/designer-chart/src/main/java/com/fr/design/module/FormHyperlinkGroup.java +++ b/designer-chart/src/main/java/com/fr/design/module/FormHyperlinkGroup.java @@ -32,9 +32,9 @@ public class FormHyperlinkGroup extends BaseHyperlinkGroup { public NameableCreator[] getHyperlinkCreators() { FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class); NameableCreator[] related4ChartHyper = { - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Float_Chart"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ChartHyperPoplink.class, ChartHyperPoplinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Cell"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Hyperlink_Form_Link"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), formHyperlink.getClass(), FormHyperlinkPane.class)}; + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Float_Chart"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ChartHyperPoplink.class, ChartHyperPoplinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Cell"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ChartHyperRelateCellLink.class, ChartHyperRelateCellLinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Hyperlink_Form_Link"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), formHyperlink.getClass(), FormHyperlinkPane.class)}; return ArrayUtils.addAll(super.getHyperlinkCreators(), related4ChartHyper); } diff --git a/designer-realize/src/main/java/com/fr/design/widget/WidgetConfigPane.java b/designer-realize/src/main/java/com/fr/design/widget/WidgetConfigPane.java index bc6764b91f..7d8f744e53 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/WidgetConfigPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/WidgetConfigPane.java @@ -42,7 +42,7 @@ public class WidgetConfigPane extends JListControlPane { */ public NameableCreator[] createNameableCreators() { NameableCreator defaultWidget = new NameObjectCreator(WidgetConstants.USER_DEFINED_WIDGETCONFIG, - "/com/fr/design/images/data/user_widget.png", UserDefinedWidgetConfig.class, + "/com/fr/design/images/data/user_widget.svg", UserDefinedWidgetConfig.class, UserDefinedWidgetConfigPane.class); return new NameableCreator[] { defaultWidget }; } diff --git a/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java b/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java index 609f9f29bb..162ed117c2 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/WidgetPane.java @@ -80,8 +80,8 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener this.add(column( 10, - cell(northPane).weight(0.08), - cell(cellEditorCardPane).weight(0.92) + cell(northPane).weight(0.17), + cell(cellEditorCardPane).weight(0.83) ).getComponent() ); } diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index f88dd644e4..d44a2d72f3 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -342,12 +342,12 @@ public class DesignerActivator extends Activator implements Prepare { private static NameableCreator[] hyperlinkTypes() { return new NameableCreator[]{ - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Reportlet"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ReportletHyperlink.class, ReportletHyperlinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Email"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), EmailJavaScript.class, EmailPane.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Web_Link"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), WebHyperlink.class, WebHyperlinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_JavaScript_Dynamic_Parameters"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), ParameterJavaScript.class, ParameterJavaScriptPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), JavaScriptImpl.class, JavaScriptImplPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.png"), MobilePopupHyperlink.class, MobilePopupPane.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Reportlet"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ReportletHyperlink.class, ReportletHyperlinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Email"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), EmailJavaScript.class, EmailPane.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Web_Link"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), WebHyperlink.class, WebHyperlinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_JavaScript_Dynamic_Parameters"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), ParameterJavaScript.class, ParameterJavaScriptPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), JavaScriptImpl.class, JavaScriptImplPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("FR-Plugin-Designer_Mobile_Popup"), IconUtils.readIcon("com/fr/design/images/data/hyperlink.svg"), MobilePopupHyperlink.class, MobilePopupPane.class), }; }