From 06b09703628b8b29ecad353328947b729ddc11ee Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 09:39:03 +0800 Subject: [PATCH 01/11] =?UTF-8?q?REPORT-76079=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E9=97=AE=E9=A2=98=201-=E8=BF=9C=E7=A8=8B=E4=B8=8B?= =?UTF-8?q?=E5=8F=AA=E6=98=BE=E7=A4=BA=20ip=202-=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E6=8A=A5=E8=A1=A8=E7=9A=84=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/layout/FRGUIPaneFactory.java | 8 +++---- .../start/common/DesignerOpenEmptyPanel.java | 2 +- .../com/fr/startup/ui/StartupPageModel.java | 3 ++- .../com/fr/startup/ui/StartupPageUtil.java | 21 +++++++++++++++++++ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java b/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java index 3a2e56d220..ce8fdaa9d7 100644 --- a/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java +++ b/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java @@ -153,7 +153,7 @@ public class FRGUIPaneFactory { } public static LayoutManager createCenterLayout(JComponent centerBody) { - return createCenterLayout(centerBody, 0.3d); + return createCenterLayout(centerBody, 0.5d, 0.3d); } /** @@ -162,7 +162,7 @@ public class FRGUIPaneFactory { * @param centerBody 中心组件 * @return 布局方式 */ - public static LayoutManager createCenterLayout(JComponent centerBody, double factor) { + public static LayoutManager createCenterLayout(JComponent centerBody, double factorX, double factorY) { return new LayoutManager() { @@ -188,8 +188,8 @@ public class FRGUIPaneFactory { // 这个时候大小是不确定的 int bodyWidth = centerBody.getPreferredSize().width; int bodyHeight = centerBody.getPreferredSize().height; - int labelX = (width - bodyWidth) / 2; - int labelY = (int) ((height - bodyHeight) * factor); + int labelX = (int) ((width - bodyWidth) * factorX); + int labelY = (int) ((height - bodyHeight) * factorY); centerBody.setBounds(labelX, labelY, bodyWidth, bodyHeight); } diff --git a/designer-base/src/main/java/com/fr/start/common/DesignerOpenEmptyPanel.java b/designer-base/src/main/java/com/fr/start/common/DesignerOpenEmptyPanel.java index 89aeedc602..7f4a0eeb97 100644 --- a/designer-base/src/main/java/com/fr/start/common/DesignerOpenEmptyPanel.java +++ b/designer-base/src/main/java/com/fr/start/common/DesignerOpenEmptyPanel.java @@ -70,7 +70,7 @@ public class DesignerOpenEmptyPanel extends JPanel { this.body.add(createIcon, BorderLayout.NORTH); this.body.add(createButtonPanel, BorderLayout.SOUTH); - setLayout(FRGUIPaneFactory.createCenterLayout(this.body, 0.4d)); + setLayout(FRGUIPaneFactory.createCenterLayout(this.body, 0.4d, 0.4d)); ColorUtils.syncBackground(this, Color.WHITE); diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageModel.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageModel.java index c345c8991d..a461ee33b5 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageModel.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageModel.java @@ -45,7 +45,8 @@ public class StartupPageModel { DesignerWorkspaceInfo workspaceInfo = envManager.getWorkspaceInfo(e); if (workspaceInfo.getType() == DesignerWorkspaceType.Remote) { WorkspaceConnectionInfo connection = workspaceInfo.getConnection(); - return new StartupWorkspaceBean(e, connection.getUrl(), workspaceInfo.getType()); + String remoteAddress = StartupPageUtil.getRemoteAddress(connection.getUrl()); + return new StartupWorkspaceBean(e, remoteAddress, workspaceInfo.getType()); } else { return new StartupWorkspaceBean(e, workspaceInfo.getPath(), workspaceInfo.getType()); } diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java index 896b425957..2a71d0d5e5 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java @@ -2,8 +2,10 @@ package com.fr.startup.ui; import com.fr.base.svg.SVGIcon; import com.fr.design.env.DesignerWorkspaceType; +import com.fr.log.FineLoggerFactory; import javax.swing.Icon; +import java.net.URL; /** * created by Harrison on 2022/07/11 @@ -37,4 +39,23 @@ public class StartupPageUtil { } return SVGIcon.readSVGIcon("/com/fr/design/startup/remote_server_background_28.svg", 28, 28); } + + /** + * 返回 ip : port + * + * @param urlStr 完整的 url 值,例如 https://localhost:3090/xxx + * @return localhost:3090 + */ + public static String getRemoteAddress(String urlStr) { + + try { + URL url = new URL(urlStr); + String host = url.getHost(); + int port = url.getPort(); + return host + ":" + port; + } catch (Exception e) { + FineLoggerFactory.getLogger().debug(e.getMessage(), e); + return urlStr; + } + } } From aee2a99c130b1745f1e2dfd264e65d56ea238231 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 09:41:51 +0800 Subject: [PATCH 02/11] =?UTF-8?q?REPORT-78361=20=E3=80=90=E8=BF=AD?= =?UTF-8?q?=E4=BB=A3=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91?= =?UTF-8?q?=E4=B8=8D=E6=89=93=E5=BC=80=E4=BB=BB=E4=BD=95=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=EF=BC=8C=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E6=A0=91=E6=89=93=E5=BC=80=E6=A8=A1=E6=9D=BF=E6=8A=A5?= =?UTF-8?q?=E9=94=99npe=20=E8=A7=84=E9=81=BF=20npe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/ElementCasePaneDelegate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java index 5cc095cfac..66f97093e2 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -86,7 +86,7 @@ public class ElementCasePaneDelegate extends ElementCasePane { QuickEditorRegion.getInstance().populate(getCurrentEditor()); JTemplate editingTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); // 模板初始化完成后,才能初始化超级链接面板 - if (editingTemplate != null && !editingTemplate.isUpMode()) { + if (JTemplate.isValid(editingTemplate) && !editingTemplate.isUpMode()) { Selection editingSelection = getSelection(); // 获取超级链接面板并刷新显示 HyperlinkGroupPane hyperlinkGroupPane = editingTemplate.getHyperLinkPane(HyperlinkGroupPaneActionImpl.getInstance()); From 8b80a1c10ea0f61108454160b0507466b436227e Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 09:42:06 +0800 Subject: [PATCH 03/11] =?UTF-8?q?REPORT-78365=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E4=B8=8D?= =?UTF-8?q?=E6=89=93=E5=BC=80=E4=BB=BB=E4=BD=95=E6=8A=A5=E8=A1=A8=EF=BC=8C?= =?UTF-8?q?=E6=99=AE=E9=80=9A=E6=8A=A5=E8=A1=A8=E8=81=9A=E5=90=88=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E9=83=BD=E6=96=B0=E5=BB=BA=E5=A4=B1=E8=B4=A5=20?= =?UTF-8?q?=E8=A7=84=E9=81=BF=20npe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../theme/utils/DefaultThemedTemplateCellElementCase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/utils/DefaultThemedTemplateCellElementCase.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/utils/DefaultThemedTemplateCellElementCase.java index 64aaeb9c07..123875eefc 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/utils/DefaultThemedTemplateCellElementCase.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/utils/DefaultThemedTemplateCellElementCase.java @@ -33,7 +33,7 @@ public class DefaultThemedTemplateCellElementCase { private static DefaultTemplateCellElement themingCellElement(DefaultTemplateCellElement cellElement) { JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (template != null) { + if (JTemplate.isValid(template)) { TemplateTheme theme = template.getTemplateTheme(); ThemedCellStyle themedCellStyle = theme.getCellStyleList().getUse4Default(); if (themedCellStyle != null) { From 7f6bda5ee86862c8e9e898f8cd9e0d16179e8fc8 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 09:48:51 +0800 Subject: [PATCH 04/11] =?UTF-8?q?REPORT-76079=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E9=97=AE=E9=A2=98=20=E5=A4=84=E7=90=86=E4=B8=80?= =?UTF-8?q?=E4=B8=8B=20util=20=E9=87=8C=E9=9D=A2=E7=9A=84=E9=B2=81?= =?UTF-8?q?=E6=A3=92=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/startup/ui/StartupPageUtil.java | 12 ++++++++++- .../fr/startup/ui/StartupPageUtilTest.java | 21 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 designer-base/src/test/java/com/fr/startup/ui/StartupPageUtilTest.java diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java index 2a71d0d5e5..fd79c9fe36 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageUtil.java @@ -3,6 +3,7 @@ package com.fr.startup.ui; import com.fr.base.svg.SVGIcon; import com.fr.design.env.DesignerWorkspaceType; import com.fr.log.FineLoggerFactory; +import com.fr.stable.StringUtils; import javax.swing.Icon; import java.net.URL; @@ -12,6 +13,9 @@ import java.net.URL; **/ public class StartupPageUtil { + public static final int INVALID_PORT = -1; + public static final String COLON = ":"; + /** * 获取最近区域的 ICON * @@ -49,10 +53,16 @@ public class StartupPageUtil { public static String getRemoteAddress(String urlStr) { try { + if (StringUtils.isEmpty(urlStr)) { + return StringUtils.EMPTY; + } URL url = new URL(urlStr); String host = url.getHost(); int port = url.getPort(); - return host + ":" + port; + if (port == INVALID_PORT) { + return host; + } + return host + COLON + port; } catch (Exception e) { FineLoggerFactory.getLogger().debug(e.getMessage(), e); return urlStr; diff --git a/designer-base/src/test/java/com/fr/startup/ui/StartupPageUtilTest.java b/designer-base/src/test/java/com/fr/startup/ui/StartupPageUtilTest.java new file mode 100644 index 0000000000..fe69541e35 --- /dev/null +++ b/designer-base/src/test/java/com/fr/startup/ui/StartupPageUtilTest.java @@ -0,0 +1,21 @@ +package com.fr.startup.ui; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class StartupPageUtilTest { + + @Test + public void testGetRemoteAddress() throws Exception { + String remoteAddress = StartupPageUtil.getRemoteAddress("https://localhost:9090/webroot"); + Assert.assertEquals("localhost:9090", remoteAddress); + + String remoteAddress1 = StartupPageUtil.getRemoteAddress("https://localhost/webroot"); + Assert.assertEquals("localhost", remoteAddress1); + + String remoteAddress2 = StartupPageUtil.getRemoteAddress(null); + Assert.assertEquals("", remoteAddress2); + } +} \ No newline at end of file From e8b6186b864dfe4e18efcebb86fddc132723c861 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 10:41:52 +0800 Subject: [PATCH 05/11] =?UTF-8?q?REPORT-76068=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E5=9F=8B?= =?UTF-8?q?=E7=82=B9=E6=B2=A1=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/startup/ui/StartupPageWindow.java | 8 +++- .../startup/ui/StartupPageWorkspacePanel.java | 47 ++++++++++++------- .../DesignerStartupPageActivator.java | 5 +- 3 files changed, 39 insertions(+), 21 deletions(-) diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java index b73d13d9f9..1e5481cc26 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java @@ -333,8 +333,7 @@ public class StartupPageWindow extends JFrame { @Override public void mouseClicked(MouseEvent e) { - DesignerEnvManager.getEnvManager().setLastOpenFile(recentFile); - pageModel.getOpenLastTemplateRunnable().run(); + doOpenLastTemplateAction(recentFile, pageModel); } }); Dimension preferredSize = recentItemPanel.getPreferredSize(); @@ -366,4 +365,9 @@ public class StartupPageWindow extends JFrame { return FRGUIPaneFactory.createCenterLayout(centerBody); } + private void doOpenLastTemplateAction(String recentFile, StartupPageModel pageModel) { + + DesignerEnvManager.getEnvManager().setLastOpenFile(recentFile); + pageModel.getOpenLastTemplateRunnable().run(); + } } diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java index 5251509d3c..e7d58a766f 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java @@ -194,17 +194,7 @@ public class StartupPageWorkspacePanel extends JPanel { @Override public void mousePressed(MouseEvent e) { - if (showMore) { - fontLabel.setText(Toolkit.i18nText("Fine-Design_Startup_Page_Collapse_Workspace")); - iconLabel.setIcon(IconUtils.readIcon("/com/fr/design/startup/show_less.svg")); - showMoreContent(); - showMore = !showMore; - } else { - fontLabel.setText(Toolkit.i18nText("Fine-Design_Startup_Page_Expand_All")); - iconLabel.setIcon(IconUtils.readIcon("/com/fr/design/startup/show_more.svg")); - showLessContent(); - showMore = !showMore; - } + doShowAllAction(fontLabel, iconLabel); } }); tailPanel.add(showAllPanel); @@ -382,13 +372,10 @@ public class StartupPageWorkspacePanel extends JPanel { int clickCount = e.getClickCount(); if (clickCount == DOUBLE_CLICK_COUNT) { - pageModel.setSelectWorkspaceInfo(workspaceInfo); - openEmptyTemplateRunnable.run(); + doOpenEmptyTemplate(workspaceInfo); return; } - // selectWorkspaceRunnable - pageModel.setSelectWorkspaceInfo(workspaceInfo); - selectWorkspaceRunnable.run(); + doSwitchWorkspace(workspaceInfo); } }; @@ -415,7 +402,7 @@ public class StartupPageWorkspacePanel extends JPanel { @Override public void mousePressed(MouseEvent e) { - openEmptyTemplateRunnable.run(); + doOpenEmptyTemplate(workspaceInfo); } }); descPanel.add(arrowLabel, BorderLayout.EAST); @@ -515,4 +502,30 @@ public class StartupPageWorkspacePanel extends JPanel { this.selectWorkspaceRunnable = selectWorkspaceRunnable; } + private void doOpenEmptyTemplate(StartupWorkspaceBean workspaceInfo) { + + pageModel.setSelectWorkspaceInfo(workspaceInfo); + openEmptyTemplateRunnable.run(); + } + + private void doSwitchWorkspace(StartupWorkspaceBean workspaceInfo) { + // selectWorkspaceRunnable + pageModel.setSelectWorkspaceInfo(workspaceInfo); + selectWorkspaceRunnable.run(); + } + + private void doShowAllAction(UILabel fontLabel, UILabel iconLabel) { + + if (showMore) { + fontLabel.setText(Toolkit.i18nText("Fine-Design_Startup_Page_Collapse_Workspace")); + iconLabel.setIcon(IconUtils.readIcon("/com/fr/design/startup/show_less.svg")); + showMoreContent(); + showMore = !showMore; + } else { + fontLabel.setText(Toolkit.i18nText("Fine-Design_Startup_Page_Expand_All")); + iconLabel.setIcon(IconUtils.readIcon("/com/fr/design/startup/show_more.svg")); + showLessContent(); + showMore = !showMore; + } + } } diff --git a/designer-realize/src/main/java/com/fr/start/module/optimized/DesignerStartupPageActivator.java b/designer-realize/src/main/java/com/fr/start/module/optimized/DesignerStartupPageActivator.java index 1f7ba51136..9e590a3e1d 100644 --- a/designer-realize/src/main/java/com/fr/start/module/optimized/DesignerStartupPageActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/optimized/DesignerStartupPageActivator.java @@ -139,8 +139,9 @@ public class DesignerStartupPageActivator extends Activator { } private void recordStartupEnd(StopWatch stopWatch) { - - DesignerMetrics designerMetrics = DesignerStartupContext.getInstance().getDesignerMetrics(); + + DesignerStartupContext context = DesignerStartupContext.getInstance(); + DesignerMetrics designerMetrics = context.getDesignerMetrics(); DesignerStartupModel model = designerMetrics.getModel(); model.setStartingTime(stopWatch.getTime(TimeUnit.MILLISECONDS)); model.fill(); From 81d24ec66570d7a80c0472a7aecdecb7d383c43f Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 10:42:23 +0800 Subject: [PATCH 06/11] =?UTF-8?q?REPORT-76068=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E5=9F=8B?= =?UTF-8?q?=E7=82=B9=E6=B2=A1=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/startup/metric/DesignerMetrics.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/startup/metric/DesignerMetrics.java b/designer-base/src/main/java/com/fr/startup/metric/DesignerMetrics.java index 58c67079ea..e62609279d 100644 --- a/designer-base/src/main/java/com/fr/startup/metric/DesignerMetrics.java +++ b/designer-base/src/main/java/com/fr/startup/metric/DesignerMetrics.java @@ -7,8 +7,6 @@ public class DesignerMetrics { private DesignerStartupModel model = new DesignerStartupModel(); - private DesignerStartupPageStatistic statistic = new DesignerStartupPageStatistic(); - public DesignerMetrics() { } @@ -16,7 +14,4 @@ public class DesignerMetrics { return model; } - public DesignerStartupPageStatistic getStatistic() { - return statistic; - } } From 85a3ac5642a0f4ae31230c5d4fb021dc5cef4b13 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 17:23:33 +0800 Subject: [PATCH 07/11] =?UTF-8?q?REPORT-76061=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E8=B5=B7?= =?UTF-8?q?=E5=A7=8B=E9=A1=B5=E5=B7=B2=E6=89=93=E5=BC=80=EF=BC=8C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=96=87=E4=BB=B6=E5=A4=B9=E7=9B=B4=E6=8E=A5=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=A8=A1=E6=9D=BF=201-=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E4=B8=BA=E5=85=A8=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=202-=E6=94=AF=E6=8C=81=20mac?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/utils/DesignUtils.java | 16 ++-------- .../fr/start/common/DesignerStartupUtil.java | 31 ++++++++++++++++++- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java b/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java index 67fb918666..47690bba9b 100644 --- a/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java +++ b/designer-base/src/main/java/com/fr/design/utils/DesignUtils.java @@ -25,7 +25,7 @@ import com.fr.stable.StringUtils; import com.fr.stable.os.OperatingSystem; import com.fr.start.ServerStarter; import com.fr.start.common.DesignerStartupContext; -import com.fr.startup.ui.StartupPageModel; +import com.fr.start.common.DesignerStartupUtil; import com.fr.value.NotNullLazyValue; import com.fr.workspace.WorkContext; import org.jetbrains.annotations.NotNull; @@ -48,7 +48,6 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.Enumeration; import java.util.Locale; -import java.util.Optional; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -216,18 +215,9 @@ public class DesignUtils { @Override public void run() { DesignerStartupContext context = DesignerStartupContext.getInstance(); + // 如果在启动页展示中 - if (context.isOnWaiting()) { - FileFILE fileFILE = new FileFILE(f); - // 设置上一次启动模板为 - DesignerEnvManager.getEnvManager().setLastOpenFile(fileFILE.getPath()); - StartupPageModel model = context.getStartupPageModel(); - Optional.ofNullable(model) - .ifPresent((e) -> { - // 执行上一次模板的启动 - Runnable openLastTemplateRunnable = e.getOpenLastTemplateRunnable(); - openLastTemplateRunnable.run(); - }); + if (DesignerStartupUtil.openTemplateIfOnWaiting(f)) { return; } // 如果是在启动中 diff --git a/designer-base/src/main/java/com/fr/start/common/DesignerStartupUtil.java b/designer-base/src/main/java/com/fr/start/common/DesignerStartupUtil.java index 5bc55e80c5..bc1d349474 100644 --- a/designer-base/src/main/java/com/fr/start/common/DesignerStartupUtil.java +++ b/designer-base/src/main/java/com/fr/start/common/DesignerStartupUtil.java @@ -6,16 +6,45 @@ import com.fr.file.FILE; import com.fr.file.FILEFactory; import com.fr.file.FileFILE; import com.fr.general.ComparatorUtils; +import com.fr.startup.ui.StartupPageModel; import org.jetbrains.annotations.Nullable; import java.io.File; +import java.util.Optional; /** * created by Harrison on 2022/07/09 **/ public class DesignerStartupUtil { - @Nullable + /** + * 如果是在启动页中 + * + * @param file 文件 + * @return 成功/失败 + */ + public static boolean openTemplateIfOnWaiting(File file) { + + DesignerStartupContext context = DesignerStartupContext.getInstance(); + // 如果在启动页展示中 + if (context.isOnWaiting()) { + FileFILE fileFILE = new FileFILE(file); + // 设置上一次启动模板为当前模板 + // 注意这里需要设置为 envFullName + DesignerEnvManager.getEnvManager().setLastOpenFile(fileFILE.getEnvFullName()); + StartupPageModel model = context.getStartupPageModel(); + Optional.ofNullable(model) + .ifPresent((e) -> { + // 执行上一次模板的启动 + Runnable openLastTemplateRunnable = e.getOpenLastTemplateRunnable(); + openLastTemplateRunnable.run(); + }); + return true; + } + return false; + } + + @Nullable public static FILE convertArgs2FILE(String[] args) { // p:需要打开这个报表文件,这个代码不能删除. From 47a44a711e327b65b90a51b8d51d333da72bed92 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 17:29:46 +0800 Subject: [PATCH 08/11] =?UTF-8?q?REPORT-76061=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E8=B5=B7?= =?UTF-8?q?=E5=A7=8B=E9=A1=B5=E5=B7=B2=E6=89=93=E5=BC=80=EF=BC=8C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=96=87=E4=BB=B6=E5=A4=B9=E7=9B=B4=E6=8E=A5=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=A8=A1=E6=9D=BF=201-=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E4=B8=BA=E5=85=A8=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=202-=E6=94=AF=E6=8C=81=20mac?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/deeplink/FileOpen4MacDeepLink.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/designer-realize/src/main/java/com/fr/design/deeplink/FileOpen4MacDeepLink.java b/designer-realize/src/main/java/com/fr/design/deeplink/FileOpen4MacDeepLink.java index 5709aabd6f..6eb3ea366c 100644 --- a/designer-realize/src/main/java/com/fr/design/deeplink/FileOpen4MacDeepLink.java +++ b/designer-realize/src/main/java/com/fr/design/deeplink/FileOpen4MacDeepLink.java @@ -4,6 +4,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.file.FileFILE; import com.fr.stable.StringUtils; import com.fr.stable.os.OperatingSystem; +import com.fr.start.common.DesignerStartupUtil; import java.io.File; import java.util.Map; @@ -23,6 +24,9 @@ public class FileOpen4MacDeepLink extends DeepLink { public void run(String url, String host, String path, Map params) { File file = new File(url); if (file.exists()) { + if (DesignerStartupUtil.openTemplateIfOnWaiting(file)) { + return; + } DesignerContext.getDesignerFrame().openTemplate(new FileFILE(file)); } } From a6fdd1b06023a00ac669a35add70c0871ab4624c Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 17:30:22 +0800 Subject: [PATCH 09/11] =?UTF-8?q?REPORT-78469=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E4=B8=8D?= =?UTF-8?q?=E6=89=93=E5=BC=80=E4=BB=BB=E4=BD=95=E6=8A=A5=E8=A1=A8=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=EF=BC=8C=E7=82=B9=E6=A8=A1=E6=9D=BF=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=B2=A1=E5=8F=8D=E5=BA=94=20=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=AE=A1=E7=90=86=E9=83=A8=E5=88=86=E6=B6=88=E9=99=A4?= =?UTF-8?q?=20npe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/start/MainDesigner.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/start/MainDesigner.java b/designer-realize/src/main/java/com/fr/start/MainDesigner.java index 67e3b49374..5f9f479e7f 100644 --- a/designer-realize/src/main/java/com/fr/start/MainDesigner.java +++ b/designer-realize/src/main/java/com/fr/start/MainDesigner.java @@ -240,8 +240,13 @@ public class MainDesigner extends BaseDesigner { if (WorkContext.getCurrent().isRoot()) { menuDef.addShortCut( - new ServerConfigManagerAction(), - new TemplateThemeManagerAction(), + new ServerConfigManagerAction() + ); + JTemplate jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); + if (JTemplate.isValid(jt)) { + menuDef.addShortCut(new TemplateThemeManagerAction()); + } + menuDef.addShortCut( new WidgetManagerAction() ); menuDef.addShortCut(new ChartPreStyleAction(), new ChartEmptyDataStyleAction(),new ChartMapEditorAction()); From cdbd27262ccdb78c15e9bf84c35da0df804e95b1 Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 17:30:46 +0800 Subject: [PATCH 10/11] =?UTF-8?q?REPORT-78472=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E4=B8=8D?= =?UTF-8?q?=E6=89=93=E5=BC=80=E4=BB=BB=E4=BD=95=E6=8A=A5=E8=A1=A8=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=EF=BC=8C=E7=82=B9=E6=8E=A7=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=8A=A5=E9=94=99npe=20npe=20=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/server/WidgetManagerAction.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 ff8352e28c..d04dc76975 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 @@ -1,16 +1,15 @@ package com.fr.design.actions.server; -import com.fr.base.svg.IconUtils; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; +import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.MenuKeySet; import com.fr.design.webattr.WidgetManagerPane; import com.fr.form.ui.WidgetInfoConfig; - import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; import com.fr.transaction.WorkerFacade; @@ -61,7 +60,10 @@ public class WidgetManagerAction extends UpdateAction { if (model != null) { model.widgetConfigChanged(); } - designerFrame.getSelectedJTemplate().refreshToolArea(); + JTemplate jt = designerFrame.getSelectedJTemplate(); + if (JTemplate.isValid(jt)) { + jt.refreshToolArea(); + } } })); } From ca024a4f6b0d43a547db871ecfa0ce97571d65af Mon Sep 17 00:00:00 2001 From: Harrison Date: Wed, 17 Aug 2022 19:22:50 +0800 Subject: [PATCH 11/11] =?UTF-8?q?REPORT-76079=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E9=97=AE=E9=A2=98=201-=E5=A4=84=E7=90=86=E5=85=A8?= =?UTF-8?q?=E5=B1=8F=E9=97=AE=E9=A2=98=202-=E4=B8=8A=E4=B8=8B=E9=97=B4?= =?UTF-8?q?=E8=B7=9D=E6=94=B9=E5=8F=98=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../metric/DesignerStartupPageStatistic.java | 71 ------------------- .../com/fr/startup/ui/StartupPageWindow.java | 12 +++- .../startup/ui/StartupPageWorkspacePanel.java | 8 ++- 3 files changed, 16 insertions(+), 75 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/startup/metric/DesignerStartupPageStatistic.java diff --git a/designer-base/src/main/java/com/fr/startup/metric/DesignerStartupPageStatistic.java b/designer-base/src/main/java/com/fr/startup/metric/DesignerStartupPageStatistic.java deleted file mode 100644 index 412ee434cf..0000000000 --- a/designer-base/src/main/java/com/fr/startup/metric/DesignerStartupPageStatistic.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.fr.startup.metric; - -/** - * 设计器启动页使用数据 - * - * created by Harrison on 2022/08/12 - **/ -public class DesignerStartupPageStatistic { - - /** - * operate:0-双击工作目录进入 或 点击蓝色箭头进入;1-切换其他工作目录;2-点击展开全部;3-点击工作目录中的模版直接打开 或 直接点击蓝色箭头进入 - */ - private int operate; - - /** - * workplace:工作目录名称,当operate为 0或1时记录 - */ - private String workspace; - - /** - * workplaceNumber:工作目录的个数,当operate为 0或1或2或3时记录 - */ - private String workspaceNum; - - /** - * template:模板名称,当operate为 3时记录 - */ - private String template; - - public DesignerStartupPageStatistic(int operate, String workspace, String workspaceNum, String template) { - this.operate = operate; - this.workspace = workspace; - this.workspaceNum = workspaceNum; - this.template = template; - } - - public DesignerStartupPageStatistic() { - } - - public int getOperate() { - return operate; - } - - public void setOperate(int operate) { - this.operate = operate; - } - - public String getWorkspace() { - return workspace; - } - - public void setWorkspace(String workspace) { - this.workspace = workspace; - } - - public String getWorkspaceNum() { - return workspaceNum; - } - - public void setWorkspaceNum(String workspaceNum) { - this.workspaceNum = workspaceNum; - } - - public String getTemplate() { - return template; - } - - public void setTemplate(String template) { - this.template = template; - } -} diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java index 1e5481cc26..709152524c 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java @@ -11,7 +11,6 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.ui.util.UIUtil; import com.fr.design.utils.ColorUtils; -import com.fr.design.utils.gui.GUICoreUtils; import com.fr.exit.DesignerExiter; import com.fr.general.GeneralUtils; import com.fr.log.FineLoggerFactory; @@ -68,7 +67,7 @@ public class StartupPageWindow extends JFrame { private static final int TITLE_FONT_SIZE = 24; private static final int ITEM_VERTICAL_GAP = 5; - private static final Dimension SCREEN_SIZE = new Dimension(1600, 820); + private static final Dimension SCREEN_SIZE = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); private StartupPageWorkspacePanel workspacePanel; @@ -147,7 +146,14 @@ public class StartupPageWindow extends JFrame { validate(); revalidate(); - GUICoreUtils.centerWindow(this); + setFullScreen(); + } + + private void setFullScreen() { + + Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); + this.setLocation(0, 0); + this.setSize(screenSize.width, screenSize.height); } private void addDefaultListeners() { diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java index e7d58a766f..1cc1805497 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java @@ -127,6 +127,10 @@ public class StartupPageWorkspacePanel extends JPanel { private JComponent generateUnLimitContentPanel(List> partitions) { + JPanel workspaceDescWrapper = new JPanel(); + workspaceDescWrapper.setLayout(new BorderLayout(0, 0)); + workspaceDescWrapper.setBorder(new EmptyBorder(20, 0, 0, 0)); + JPanel workspaceDescPanel = new JPanel(); workspaceDescPanel.setLayout(new GridLayout(partitions.size(), 1, 0, ITEM_VERTICAL_GAP)); for (List partition : partitions) { @@ -139,9 +143,11 @@ public class StartupPageWorkspacePanel extends JPanel { UIScrollPane scrollPane = new UIScrollPane(workspaceDescPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setBorder(new EmptyBorder(10, 0, 0, 0)); scrollPane.setPreferredSize(new Dimension(CONTENT_WIDTH, SCROLL_HEIGHT)); + workspaceDescWrapper.add(scrollPane, BorderLayout.CENTER); return scrollPane; } - return workspaceDescPanel; + workspaceDescWrapper.add(workspaceDescPanel, BorderLayout.CENTER); + return workspaceDescWrapper; } private JPanel generateLimitContentPanel(List> partitions) {