From 6ce71d3b1269c0c5c6034ea8695364a041dc154b Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Thu, 21 Oct 2021 10:33:49 +0800 Subject: [PATCH 01/25] =?UTF-8?q?REPORT-61299=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E7=B1=BB=E5=BC=95=E5=AF=BC=E9=AB=98=E4=BA=AE?= =?UTF-8?q?window=E4=B8=8A=E6=9C=89=E4=B8=80=E5=9C=88=E9=BB=91=E7=BA=BF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/guide/scene/AbstractGuideScene.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java index 95c7c24a4a..7ae93ab06b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java @@ -178,9 +178,7 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { return DEFAULT_HIGHLIGHT_INSETS; } }; - - label.setBorder(BorderFactory.createMatteBorder(DEFAULT_HIGHLIGHT_INSETS.top, DEFAULT_HIGHLIGHT_INSETS.left, DEFAULT_HIGHLIGHT_INSETS.bottom, DEFAULT_HIGHLIGHT_INSETS.right, Color.WHITE)); - + label.setBackground(Color.WHITE); label.setOpaque(true); label.setBounds(new Rectangle( rectangle.x - DEFAULT_HIGHLIGHT_INSETS.left, From 2ec87c3e7339279794ef837e3b171e4fb60b5251 Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 21 Oct 2021 15:30:26 +0800 Subject: [PATCH 02/25] =?UTF-8?q?REPORT-61356=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E5=90=AF=E5=8A=A8=E5=8A=A0=E8=BD=BD=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E5=81=9C=E7=95=99=E7=9A=84=E7=A9=BA=E7=99=BD?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=8F=98=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/NorthRegionContainerPane.java | 79 ++++++++++++++----- 1 file changed, 61 insertions(+), 18 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java index f15b3517f0..99ef60ba49 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java @@ -17,6 +17,8 @@ import com.fr.plugin.injectable.PluginModule; import com.fr.plugin.manage.PluginFilter; import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; +import com.fr.plugin.observer.PluginEventType; +import com.fr.plugin.observer.PluginListenerRegistration; import com.fr.stable.os.support.OSBasedAction; import com.fr.stable.os.support.OSSupportCenter; @@ -38,6 +40,17 @@ public class NorthRegionContainerPane extends JPanel { private JMenuBar menuBar; + private PluginFilter pluginFilter = new PluginFilter() { + + @Override + public boolean accept(PluginContext context) { + + return context.contain(PluginModule.ExtraDesign); + } + }; + + private volatile boolean existDesignExtraPlugin; + public static NorthRegionContainerPane getInstance() { if (THIS == null) { synchronized (NorthRegionContainerPane.class) { @@ -66,34 +79,64 @@ public class NorthRegionContainerPane extends JPanel { //hugh: private修改为protected方便oem的时候修改右上的组件构成 //顶部日志+登陆按钮 final JPanel northEastPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + initPluginListener(northEastPane, ad); + refreshNorthEastPane(northEastPane, ad); + return northEastPane; + } + + private void initPluginListener(JPanel northEastPane, ToolBarMenuDock ad) { //优先级为-1,保证最后全面刷新一次 - GeneralContext.listenPluginRunningChanged(new PluginEventListener(-1) { + PluginEventListener pluginOnRunOrStopListener = new PluginEventListener(-1) { @Override public void on(PluginEvent event) { - - refreshNorthEastPane(northEastPane, ad); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (DesignerContext.getDesignerFrame() == null) { - return; - } - DesignerContext.getDesignerFrame().refresh(); - DesignerContext.getDesignerFrame().repaint(); - } - }); + refreshAll(northEastPane, ad); } - }, new PluginFilter() { + }; + // 在设计器启动时仅在最后一个插件启用时候进行刷新一次 如果插件启用过程中存在实现了设计器接口的插件 + PluginEventListener afterAllPluginsActiveListener = new PluginEventListener() { + @Override + public void on(PluginEvent event) { + //优先级为-1,保证最后全面刷新一次 + GeneralContext.listenPluginRunningChanged(pluginOnRunOrStopListener, pluginFilter); + // 在设计器启动时仅在最后一个插件启用时候进行刷新一次 如果插件启用过程中存在实现了设计器接口的插件 + boolean needRefresh = DesignerContext.getDesignerFrame() != null && DesignerContext.getDesignerFrame().isVisible() && existDesignExtraPlugin; + if (needRefresh) { + refreshAll(northEastPane, ad); + } + } + }; + PluginEventListener beforeAllPluginStopListener = new PluginEventListener() { + @Override + public void on(PluginEvent event) { + PluginListenerRegistration.getInstance().stopListen(pluginOnRunOrStopListener); + } + }; + PluginEventListener pluginEventListener = new PluginEventListener() { @Override - public boolean accept(PluginContext context) { + public void on(PluginEvent event) { + existDesignExtraPlugin = true; + } + }; + GeneralContext.listenPluginRunningChanged(pluginEventListener, pluginFilter); + PluginListenerRegistration.getInstance().listen(PluginEventType.AfterAllActive, afterAllPluginsActiveListener); + PluginListenerRegistration.getInstance().listen(PluginEventType.BeforeAllStop, beforeAllPluginStopListener); - return context.contain(PluginModule.ExtraDesign); + } + + private void refreshAll(JPanel northEastPane, ToolBarMenuDock ad) { + refreshNorthEastPane(northEastPane, ad); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (DesignerContext.getDesignerFrame() == null) { + return; + } + DesignerContext.getDesignerFrame().refresh(); + DesignerContext.getDesignerFrame().repaint(); } }); - refreshNorthEastPane(northEastPane, ad); - return northEastPane; } private void refreshNorthEastPane(final JPanel northEastPane, final ToolBarMenuDock ad) { From 5ee8ca1b57cccee64eb1b7c303df16a72d3e8cc9 Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 21 Oct 2021 16:33:58 +0800 Subject: [PATCH 03/25] =?UTF-8?q?REPORT-61356=20=20fix=20=E7=BB=9F?= =?UTF-8?q?=E4=B8=80api=E4=BD=BF=E7=94=A8=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/NorthRegionContainerPane.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java index 99ef60ba49..6802024eac 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/NorthRegionContainerPane.java @@ -18,7 +18,6 @@ import com.fr.plugin.manage.PluginFilter; import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventType; -import com.fr.plugin.observer.PluginListenerRegistration; import com.fr.stable.os.support.OSBasedAction; import com.fr.stable.os.support.OSSupportCenter; @@ -110,7 +109,7 @@ public class NorthRegionContainerPane extends JPanel { PluginEventListener beforeAllPluginStopListener = new PluginEventListener() { @Override public void on(PluginEvent event) { - PluginListenerRegistration.getInstance().stopListen(pluginOnRunOrStopListener); + GeneralContext.stopListenPlugin(pluginOnRunOrStopListener); } }; PluginEventListener pluginEventListener = new PluginEventListener() { @@ -120,8 +119,8 @@ public class NorthRegionContainerPane extends JPanel { } }; GeneralContext.listenPluginRunningChanged(pluginEventListener, pluginFilter); - PluginListenerRegistration.getInstance().listen(PluginEventType.AfterAllActive, afterAllPluginsActiveListener); - PluginListenerRegistration.getInstance().listen(PluginEventType.BeforeAllStop, beforeAllPluginStopListener); + GeneralContext.listenPlugin(PluginEventType.AfterAllActive, afterAllPluginsActiveListener); + GeneralContext.listenPlugin(PluginEventType.BeforeAllStop, beforeAllPluginStopListener); } From c4c414ec5f5ec0b067746c973a5089c2e922f43d Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 21 Oct 2021 17:06:42 +0800 Subject: [PATCH 04/25] =?UTF-8?q?REPORT-60993=20=E5=AF=BC=E5=87=BA-?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BA=8B=E4=BB=B6-=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=B2=A1=E6=9C=89=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../javascript/ExportJavaScriptPane.java | 129 +++++++++--------- 1 file changed, 66 insertions(+), 63 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java b/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java index 48c18eb699..416dd26c87 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java @@ -72,7 +72,6 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane parameterList = parameterViewPane.update(); + if (!parameterList.isEmpty()) { + Parameter[] parameters = new Parameter[parameterList.size()]; + parameterList.toArray(parameters); + js.setParameters(parameters); + } + } + } + } + public void populateSingleJavaScript(SingleJavaScript js){ + exportTypeComboBox.setSelectedItem(js.getExportType()); + fileNameRadioGroup.selectIndexButton(js.isDefaultFileName() ? 0 : 1); + if (!js.isDefaultFileName()) { + fileNameFormulaEditor.setEnabled(true); + fileNameFormulaEditor.setVisible(true); + fileNameFormulaEditor.setValue(BaseFormula.createFormulaBuilder().build(js.getFileName())); + } + if (js.isExtendParameters()) { + extendParametersCheckBox.setSelected(true); + } else { + extendParametersCheckBox.setSelected(false); + if (this.parameterViewPane != null) { + List parameterList = this.parameterViewPane.update(); + parameterList.clear(); + ParameterProvider[] parameters = js.getParameters(); + this.parameterViewPane.populate(parameters); + } + } + } + private JPanel initExportTypePane() { + UILabel typeLabel = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Export_JS_Type") + ":"); + exportTypeComboBox = getComboBoxWithModel(new String[]{ExportJavaScript.EXPORT_PDF, ExportJavaScript.EXPORT_EXCEL_PAGE, ExportJavaScript.EXPORT_EXCEL_SIMPLE, ExportJavaScript.EXPORT_EXCEL_SHEET, ExportJavaScript.EXPORT_WORD, ExportJavaScript.EXPORT_IMAGE} + , EXPORT_TYPES_MAP); + Component[][] components = new Component[][]{{typeLabel, exportTypeComboBox}}; + + JPanel exportTypePane = TableLayoutHelper.createTableLayoutPane(components, new double[]{p}, new double[]{p, p}); + exportTypePane.setBorder(BorderFactory.createEmptyBorder(5, 2, 5, 2)); + return exportTypePane; + } @Override protected String title4PopupWindow() { @@ -221,6 +270,12 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane javaScripts = editorPane.update(); + for (SingleJavaScript js : javaScripts) { + exportJavaScript.addOtherTemplateJS(js); + } + } @Override protected String title4PopupWindow() { @@ -729,17 +784,6 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane parameterList = this.parameterViewPane.update(); - parameterList.clear(); - ParameterProvider[] parameters = js.getParameters(); - this.parameterViewPane.populate(parameters); - } - } - } else { - OtherTemplatePane pane = (OtherTemplatePane) this.templatePanel.getComponent(1); - pane.editorPane.populate(ob.getJsList().toArray(new SingleJavaScript[ob.getJsList().size()])); - } + currentTemplatePane.populateSingleJavaScript(ob.getCurrentTemplateJavaScript()); + + OtherTemplatePane pane = (OtherTemplatePane) this.templatePanel.getComponent(1); + pane.editorPane.populate(ob.getJsListForOtherTemplates().toArray(new SingleJavaScript[ob.getJsListForOtherTemplates().size()])); } @Override @@ -817,33 +841,12 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane parameterList = parameterViewPane.update(); - if (!parameterList.isEmpty()) { - Parameter[] parameters = new Parameter[parameterList.size()]; - parameterList.toArray(parameters); - js.setParameters(parameters); - } - } - } - exportJavaScript.addJS(js); - } else { - List javaScripts = otherTemplatePane.editorPane.update(); - for (SingleJavaScript js : javaScripts) { - exportJavaScript.addJS(js); - } - } + SingleJavaScript js = new SingleJavaScript(); + js.setCurrentTemplate(selected); + currentTemplatePane.updateSingleJavaScript(js); + exportJavaScript.addCurrentTemplateJS(js); + + otherTemplatePane.updateExportJavaScript(exportJavaScript); } private String getFileName() { From 0da2ff82ece613db81055ba8b70d71e203f611d0 Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Thu, 21 Oct 2021 17:42:08 +0800 Subject: [PATCH 05/25] =?UTF-8?q?REPORT-61213=20mac=E5=85=A8=E5=B1=8F?= =?UTF-8?q?=E4=B8=8B=E9=83=A8=E5=88=86=E9=AB=98=E4=BA=AE=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E6=9C=89=E5=81=8F=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/guide/base/GuideView.java | 7 ++++++- .../design/mainframe/guide/scene/AbstractGuideScene.java | 5 +++-- .../guide/creator/layout/ChangeLayoutComponentGuide.java | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/GuideView.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/GuideView.java index f8b93e34c3..6a9a60615f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/GuideView.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/GuideView.java @@ -85,7 +85,12 @@ public class GuideView extends JDialog { updateGuideViewLocation(); this.setVisible(true); if (scene != null) { - scene.start(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + scene.start(); + } + }); } else { GuideManager.getInstance().getCurrentGuide().complete(); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java index 7ae93ab06b..5ead71c621 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java @@ -396,8 +396,9 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { } public void clear() { - targetList = new ArrayList<>(); - highlightList = new ArrayList<>(); + targetList.clear(); + highlightList.clear(); + pointsList.clear(); this.nextButton = null; if (this.getComponentCount() > 0) { this.removeAll(); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/ChangeLayoutComponentGuide.java b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/ChangeLayoutComponentGuide.java index 2058bf958b..ae7fb81387 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/ChangeLayoutComponentGuide.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/ChangeLayoutComponentGuide.java @@ -87,9 +87,11 @@ public class ChangeLayoutComponentGuide { @Override public boolean prepared() { switchButton.getComponentPopupMenu().setVisible(true); + Rectangle popupBounds = GuideCreateUtils.getRelativeBounds(switchButton.getComponentPopupMenu(), switchButton,0, -switchButton.getComponentPopupMenu().getHeight()); + switchButton.getComponentPopupMenu().show(scene.getContainer(), popupBounds.x, popupBounds.y); scene.addCustomTarget( GuideCreateUtils.createModalTarget(switchButton.getComponentPopupMenu()), - GuideCreateUtils.getRelativeBounds(switchButton.getComponentPopupMenu(), switchButton,0, -switchButton.getComponentPopupMenu().getHeight()) + popupBounds ); scene.addClickTarget(switchButton.getComponentPopupMenu().getComponent(1), ClickScene.ClickType.LEFT, true); scene.addBubbleTip(Toolkit.i18nText("Fine-Design_Guide_Scene_F001002_Tip_Select_Fix_layout"), null, GuideTip.Direction.RIGHT, 0.5f, 0.8f); From 7dedcbc2aa43bdc16312f23c3baa972b2076cfc9 Mon Sep 17 00:00:00 2001 From: pengda Date: Thu, 21 Oct 2021 19:07:23 +0800 Subject: [PATCH 06/25] =?UTF-8?q?REPORT-61012=20&=20REPORT-61285=20?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E8=81=94=E5=8A=A8=E9=97=AE=E9=A2=98=E5=8F=8A?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/itableeditorpane/UITableEditorPane.java | 8 ++++++++ .../com/fr/design/javascript/ExportJavaScriptPane.java | 7 ++++--- 2 files changed, 12 insertions(+), 3 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 d6973f6bb4..07756a56b7 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 @@ -153,4 +153,12 @@ public class UITableEditorPane extends BasicPane { tableModel.stopCellEditing(); } + + /** + * 设置表头是否可以改变大小 + */ + public void setHeaderResizing(boolean resizingAllowed){ + editTable.getTableHeader().setResizingAllowed(resizingAllowed); + } + } diff --git a/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java b/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java index 416dd26c87..9b323a88e6 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java @@ -263,6 +263,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane(new ExportJSTableModel()); + editorPane.setHeaderResizing(false); this.add(editorPane, BorderLayout.CENTER); } @@ -488,7 +489,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane Date: Fri, 22 Oct 2021 09:36:13 +0800 Subject: [PATCH 07/25] =?UTF-8?q?REPORT-61302=20=E3=80=90FR11=E3=80=91?= =?UTF-8?q?=E3=80=90=E7=BB=84=E4=BB=B6=E8=83=8C=E6=99=AF=E5=88=86=E7=A6=BB?= =?UTF-8?q?=E3=80=91&=E3=80=90=E5=9B=BA=E5=AE=9A=E5=B8=83=E5=B1=80-?= =?UTF-8?q?=E5=8E=9F=E5=B8=83=E5=B1=80=E6=8E=A8=E8=8D=904.1=E3=80=91?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8-=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E5=88=86=E7=A6=BB=E5=81=9A=E8=BF=87=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=BB=84=E4=BB=B6=E7=A7=BB=E5=85=A5tab=E5=9D=97?= =?UTF-8?q?=EF=BC=8C=E7=BB=84=E4=BB=B6=E6=82=AC=E5=81=9C=E5=9C=A8tab?= =?UTF-8?q?=E4=B8=8A=E8=B6=85=E8=BF=871s=E5=B0=B1=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E4=B8=BA=E7=A7=BB=E5=85=A5tab=E5=86=85=E9=83=A8=EF=BC=8C?= =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E5=92=8C10.0=E7=9A=84=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E6=A0=B7=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/FormCreatorDropTarget.java | 3 ++- .../com/fr/design/mainframe/TabDragInner.java | 17 ++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormCreatorDropTarget.java b/designer-form/src/main/java/com/fr/design/mainframe/FormCreatorDropTarget.java index af4d2ae2de..82befa2731 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormCreatorDropTarget.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormCreatorDropTarget.java @@ -96,11 +96,13 @@ public class FormCreatorDropTarget extends DropTarget { boolean formSubmit2Adapt = !addingModel.getXCreator().canEnterIntoAdaptPane() && container.acceptType(XWFitLayout.class); if (model != null && !chartEnter2Para && !formSubmit2Adapt) { + tabDragInner.tryDragIn(); success = model.add2Container(designer, container, x, y); } cancelPromptWidgetForbidEnter(); } if (success) { + tabDragInner.reset(); // 如果添加成功,则触发相应事件 XCreator xCreator = container.acceptType(XWParameterLayout.class) ? designer.getParaComponent() : designer.getRootComponent(); //SetSelection时要确保选中的是最顶层的布局 @@ -143,7 +145,6 @@ public class FormCreatorDropTarget extends DropTarget { designer.getSelectionModel().setSelectedCreators( FormSelectionUtils.rebuildSelection(xCreator, new Widget[]{widget})); designer.getEditListenerTable().fireCreatorModified(addingModel.getXCreator(), DesignerEvent.CREATOR_ADDED); - tabDragInner.tryDragIn(); } else { Toolkit.getDefaultToolkit().beep(); // 拖入失败 取消选中 diff --git a/designer-form/src/main/java/com/fr/design/mainframe/TabDragInner.java b/designer-form/src/main/java/com/fr/design/mainframe/TabDragInner.java index fb6608c43a..9b524f28e6 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/TabDragInner.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/TabDragInner.java @@ -1,7 +1,5 @@ package com.fr.design.mainframe; -import com.fr.design.designer.beans.AdapterBus; -import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; @@ -64,16 +62,13 @@ public class TabDragInner { */ public void tryDragIn() { if (belowXLayoutContainer != null && belowXLayoutContainer.isDragInAble()) { - EditingMouseListener editingMouseListener = new EditingMouseListener(designer); - editingMouseListener.refreshTopXCreator(); belowXLayoutContainer.setEditable(true); - if (editingMouseListener.stopEditing() && belowXLayoutContainer != designer.getRootComponent()) { - ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, belowXLayoutContainer); - if (adapter != null) { - editingMouseListener.startEditing(belowXLayoutContainer, adapter.getDesignerEditor(), adapter); - belowXLayoutContainer.setDragInAble(false); - } - } + } + } + + public void reset() { + if (belowXLayoutContainer != null) { + belowXLayoutContainer.setDragInAble(false); } } From 5622c886cc7f1e324cd14d7079cbc9485cc08fc9 Mon Sep 17 00:00:00 2001 From: Lanlan Date: Fri, 22 Oct 2021 10:10:06 +0800 Subject: [PATCH 08/25] =?UTF-8?q?REPORT-61361=20=E6=96=B0=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=AE=A1=E7=90=8611.0=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer-base/src/main/java/com/fr/design/upm/UpmUtils.java | 2 +- designer-base/src/test/java/com/fr/design/upm/UpmUtilsTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmUtils.java b/designer-base/src/main/java/com/fr/design/upm/UpmUtils.java index e97a5826a1..3d8252b759 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmUtils.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmUtils.java @@ -37,7 +37,7 @@ public class UpmUtils { } private static String fetchLatestVersion() { - String version = CloudCenter.getInstance().acquireUrlByKind("upm.script.version"); + String version = CloudCenter.getInstance().acquireUrlByKind("upm.script.version.v11"); if (StringUtils.isBlank(version)) { version = "1.0"; } diff --git a/designer-base/src/test/java/com/fr/design/upm/UpmUtilsTest.java b/designer-base/src/test/java/com/fr/design/upm/UpmUtilsTest.java index 31119d049c..5d96a6f0b3 100644 --- a/designer-base/src/test/java/com/fr/design/upm/UpmUtilsTest.java +++ b/designer-base/src/test/java/com/fr/design/upm/UpmUtilsTest.java @@ -34,7 +34,7 @@ public class UpmUtilsTest { EasyMock.expect(ServerPreferenceConfig.getInstance()).andReturn(serverPreferenceConfig).anyTimes(); CloudCenter cloudCenter = EasyMock.mock(CloudCenter.class); - EasyMock.expect(cloudCenter.acquireUrlByKind("upm.script.version")).andReturn("2.0").anyTimes(); + EasyMock.expect(cloudCenter.acquireUrlByKind("upm.script.version.v11")).andReturn("2.0").anyTimes(); PowerMock.mockStatic(CloudCenter.class); EasyMock.expect(CloudCenter.getInstance()).andReturn(cloudCenter).anyTimes(); From bc5e51c8f552b0f6d9b73bc537a090a7ed1e4528 Mon Sep 17 00:00:00 2001 From: Starryi Date: Thu, 21 Oct 2021 16:00:53 +0800 Subject: [PATCH 09/25] =?UTF-8?q?REPORT-61338=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E4=B8=BB=E9=A2=98-=E4=B8=BB=E9=A2=98=E9=85=8D?= =?UTF-8?q?=E8=89=B2=E4=BF=AE=E6=94=B9=E4=BF=9D=E5=AD=98=E5=90=8E=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E5=BC=82=E5=B8=B8=E7=A9=BA=E7=99=BD=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 AlphaFine也会创建一个主题管列界面的面板,用于提 取可以搜索的问题,但是这个面板是不对外展示的,不 应该启用对主题配置数据的监听以及线程池异步加载。 应用启动时,AlphaFine在另一个线程通过反射调用 默认构造函数创建面板,注册了对主题配置数据的监听 器,导致遍历监听器列表时出现并发访问异常,同时 违反了按需加载的主题列表设计意图 【改动思路】 仅在主题管理窗口可见后,再添加监听器和异步加载数据 --- .../theme/TemplateThemeGridControlPane.java | 42 ++++++------- .../theme/TemplateThemeGridPagesPane.java | 48 ++++----------- .../theme/TemplateThemeGridPane.java | 60 ++++++++++++------- .../dialog/TemplateThemeGridPagesDialog.java | 8 +-- 4 files changed, 72 insertions(+), 86 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridControlPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridControlPane.java index f721923e94..36f4fc1462 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridControlPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridControlPane.java @@ -43,6 +43,8 @@ import java.awt.Stroke; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import static com.fr.design.i18n.Toolkit.i18nText; @@ -63,27 +65,31 @@ public class TemplateThemeGridControlPane extends Basic private final AsyncThemeFetcher asyncThemeFetcher; - public static TemplateThemeGridControlPane createFormThemesManagerPane() { + private final Window window; + + public static TemplateThemeGridControlPane createFormThemesManagerPane(Window window) { FormThemeConfig config = FormThemeConfig.getInstance(); FormThemeProfilePane editPane = new FormThemeProfilePane(config); - return new TemplateThemeGridControlPane<>(config, editPane); + return new TemplateThemeGridControlPane<>(window, config, editPane); } - public static TemplateThemeGridControlPane createReportThemesManagerPane() { + public static TemplateThemeGridControlPane createReportThemesManagerPane(Window window) { ReportThemeConfig config = ReportThemeConfig.getInstance(); ReportThemeProfilePane editPane = new ReportThemeProfilePane(config); - return new TemplateThemeGridControlPane<>(config, editPane); + return new TemplateThemeGridControlPane<>(window, config, editPane); } - public TemplateThemeGridControlPane(TemplateThemeConfig config, TemplateThemeProfilePane profilePane) { + public TemplateThemeGridControlPane(Window window, TemplateThemeConfig config, TemplateThemeProfilePane profilePane) { + this.window = window; this.config = config; this.profilePane = profilePane; - this.themeListPane = new TemplateThemeGridPane<>(true, config, profilePane); + this.themeListPane = new TemplateThemeGridPane<>(window, true, config, profilePane); this.removeAction = new RemoveThemeAction(false); this.setTheme4NewTemplateButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Manager_Pane_Default_Setting")); this.asyncThemeFetcher = new AsyncThemeFetcher<>(1, config); initializePane(); + registerWindowListener(); } public TemplateThemeConfig getConfig() { @@ -117,6 +123,16 @@ public class TemplateThemeGridControlPane extends Basic repaint(); } + private void registerWindowListener() { + window.addWindowListener(new WindowAdapter() { + @Override + public void windowClosed(WindowEvent e) { + super.windowClosed(e); + asyncThemeFetcher.shutdown(); + } + }); + } + private void resetEnableRemoveAction(T selectedTheme, RemoveThemeAction removeAction) { if (selectedTheme == null) { removeAction.setEnabled(false); @@ -254,7 +270,6 @@ public class TemplateThemeGridControlPane extends Basic setName(name); setMnemonic('R'); this.prototypeThemeName = prototypeThemeName; - asyncThemeFetcher.submit(prototypeThemeName, null); } @Override @@ -308,17 +323,4 @@ public class TemplateThemeGridControlPane extends Basic g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); } } - - public void startListenThemeConfig() { - themeListPane.startListenThemeConfig(); - } - - public void stopListenThemeConfig() { - themeListPane.stopListenThemeConfig(); - } - - public void stopAsyncFetchTheme() { - asyncThemeFetcher.shutdown(); - themeListPane.stopAsyncFetchTheme(); - } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPagesPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPagesPane.java index 40838dbd83..330a2d0536 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPagesPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPagesPane.java @@ -38,6 +38,7 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Stroke; +import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; @@ -61,11 +62,11 @@ public class TemplateThemeGridPagesPane extends JPanel { private PageChangeListener pageChangeListener; private TemplateThemeGridPagePane currentTemplateThemeGridPagePane; - public TemplateThemeGridPagesPane() { - initializePane(); + public TemplateThemeGridPagesPane(Window window) { + initializePane(window); } - private void initializePane() { + private void initializePane(Window window) { setLayout(new BorderLayout()); setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10)); @@ -82,9 +83,9 @@ public class TemplateThemeGridPagesPane extends JPanel { add(contentPane, BorderLayout.CENTER); - themeUsingPane = new TemplateThemeUsingPane(); + themeUsingPane = new TemplateThemeUsingPane(window); contentPane.add(themeUsingPane, themeUsingPane.getTitle()); - themeManagingPane = new TemplateThemeManagingPane(); + themeManagingPane = new TemplateThemeManagingPane(window); contentPane.add(themeManagingPane, themeManagingPane.getTitle()); showThemeUsingPane(); @@ -189,11 +190,6 @@ public class TemplateThemeGridPagesPane extends JPanel { return button; } - public void exit() { - themeUsingPane.exit(); - themeManagingPane.exit(); - } - public void setPageChangeListener(PageChangeListener changeListener) { this.pageChangeListener = changeListener; } @@ -232,15 +228,13 @@ public class TemplateThemeGridPagesPane extends JPanel { public abstract static class TemplateThemeGridPagePane extends BasicPane { public abstract TemplateThemeConfig getConfig(); - - public void exit() { } } public static class TemplateThemeUsingPane extends TemplateThemeGridPagePane { private final JTemplate template; public final TemplateThemeGridPane themeListPane; - public TemplateThemeUsingPane() { + public TemplateThemeUsingPane(Window window) { super(); setLayout(new BorderLayout()); setBorder(new CompoundBorder( @@ -249,9 +243,7 @@ public class TemplateThemeGridPagesPane extends JPanel { template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); TemplateThemeConfig config = template.getUsingTemplateThemeConfig(); - themeListPane = new TemplateThemeGridPane<>(false, config, null); - - themeListPane.startListenThemeConfig(); + themeListPane = new TemplateThemeGridPane<>(window, false, config, null); themeListPane.setSelectedChangeListener(new ChangeListener() { @Override @@ -272,12 +264,6 @@ public class TemplateThemeGridPagesPane extends JPanel { return template.getUsingTemplateThemeConfig(); } - @Override - public void exit() { - themeListPane.stopListenThemeConfig(); - themeListPane.stopAsyncFetchTheme(); - } - @Override protected String title4PopupWindow() { return Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Using_Dialog_Title"); @@ -286,20 +272,16 @@ public class TemplateThemeGridPagesPane extends JPanel { public static class TemplateThemeManagingPane extends TemplateThemeGridPagePane { private final UITabbedPane tabbedPane; - private final TemplateThemeGridControlPane formThemesManagerPane; - private final TemplateThemeGridControlPane reportThemesManagerPane; - public TemplateThemeManagingPane() { + public TemplateThemeManagingPane(Window window) { setLayout(FRGUIPaneFactory.createBorderLayout()); tabbedPane = new UITabbedPane(); tabbedPane.setTabBorderColor(new Color(0xE0E0E1)); add(tabbedPane, BorderLayout.CENTER); - formThemesManagerPane = TemplateThemeGridControlPane.createFormThemesManagerPane(); - formThemesManagerPane.startListenThemeConfig(); - reportThemesManagerPane = TemplateThemeGridControlPane.createReportThemesManagerPane(); - reportThemesManagerPane.startListenThemeConfig(); + TemplateThemeGridControlPane formThemesManagerPane = TemplateThemeGridControlPane.createFormThemesManagerPane(window); + TemplateThemeGridControlPane reportThemesManagerPane = TemplateThemeGridControlPane.createReportThemesManagerPane(window); tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Manager_Dialog_Form_Tab"), formThemesManagerPane); tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Manager_Dialog_Report_Tab"), reportThemesManagerPane); @@ -321,14 +303,6 @@ public class TemplateThemeGridPagesPane extends JPanel { } } - @Override - public void exit() { - formThemesManagerPane.stopListenThemeConfig(); - formThemesManagerPane.stopAsyncFetchTheme(); - reportThemesManagerPane.stopListenThemeConfig(); - reportThemesManagerPane.stopAsyncFetchTheme(); - } - @Override protected String title4PopupWindow() { return Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Manager_Dialog_Title"); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPane.java index 2af4950f53..5d5ea7052c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeGridPane.java @@ -8,8 +8,6 @@ import com.fr.design.event.ChangeEvent; import com.fr.design.event.ChangeListener; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.widget.FRWidgetFactory; -import com.fr.design.widget.WidgetBoundsPaneFactory; import com.fr.stable.StringUtils; import javax.swing.BorderFactory; @@ -18,8 +16,11 @@ import javax.swing.ScrollPaneConstants; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; +import java.awt.Window; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,13 +54,17 @@ public class TemplateThemeGridPane extends BasicPane { private ChangeListener changeListener; - public TemplateThemeGridPane(boolean displayTheme4NewTemplateMarker, TemplateThemeConfig config, TemplateThemeProfilePane profilePane) { + private final Window window; + + public TemplateThemeGridPane(Window window, boolean displayTheme4NewTemplateMarker, TemplateThemeConfig config, TemplateThemeProfilePane profilePane) { + this.window = window; this.displayTheme4NewTemplateMarker = displayTheme4NewTemplateMarker; this.config = config; this.profilePane = profilePane; this.contentListPane = new JPanel(); this.asyncThemeFetcher = new AsyncThemeFetcher<>(ASYNC_FETCH_THEME_THREAD_COUNT, config); initializePane(); + registerWindowListener(); } private void initializePane() { @@ -84,6 +89,24 @@ public class TemplateThemeGridPane extends BasicPane { } + private void registerWindowListener() { + window.addWindowListener(new WindowAdapter() { + @Override + public void windowOpened(WindowEvent e) { + super.windowOpened(e); + startListenThemeConfig(); + asyncFetchThemes(); + } + + @Override + public void windowClosed(WindowEvent e) { + super.windowClosed(e); + stopListenThemeConfig(); + asyncThemeFetcher.shutdown(); + } + }); + } + public void fillContentListPane() { contentListPane.removeAll(); List names = config.getThemeNames(); @@ -97,6 +120,7 @@ public class TemplateThemeGridPane extends BasicPane { } } } + private TemplateThemeBlock createCachedTemplateThemeBlock(String name) { TemplateThemeBlock block = blockCache.get(name); if (block == null) { @@ -115,19 +139,6 @@ public class TemplateThemeGridPane extends BasicPane { setSelectedBlock(block); } }); - asyncThemeFetcher.submit(name, new AsyncThemeFetcher.AsyncThemeFetchCallbackAdapter() { - @Override - public void beforeCachedFetch() { - super.beforeCachedFetch(); - block.setTheme(null); - } - - @Override - public void afterCachedFetch(T theme) { - super.afterCachedFetch(theme); - block.setTheme(theme); - } - }); return block; } @@ -154,6 +165,15 @@ public class TemplateThemeGridPane extends BasicPane { asyncThemeFetcher.submit(themeName, new AsyncThemeListItemFetchCallback(themeName)); } + private void asyncFetchThemes() { + List names = config.getThemeNames(); + for (String name: names) { + if (config.contains(name)) { + asyncThemeFetcher.submit(name, new AsyncThemeListItemFetchCallback(name)); + } + } + } + @Override protected String title4PopupWindow() { return null; @@ -163,7 +183,7 @@ public class TemplateThemeGridPane extends BasicPane { return selectedBlock != null ? selectedBlock.getTheme() : null; } - public void startListenThemeConfig() { + private void startListenThemeConfig() { if (themeConfigChangeListener == null) { themeConfigChangeListener = new TemplateThemeConfig.ThemeConfigChangeListener() { @Override @@ -219,17 +239,13 @@ public class TemplateThemeGridPane extends BasicPane { } } - public void stopListenThemeConfig() { + private void stopListenThemeConfig() { if (themeConfigChangeListener != null) { config.removeThemeConfigChangeListener(themeConfigChangeListener); themeConfigChangeListener = null; } } - public void stopAsyncFetchTheme() { - asyncThemeFetcher.shutdown(); - } - private class AsyncThemeListItemFetchCallback extends AsyncThemeFetcher.AsyncThemeFetchCallbackAdapter { private final String themeName; public AsyncThemeListItemFetchCallback(String themeName) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/dialog/TemplateThemeGridPagesDialog.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/dialog/TemplateThemeGridPagesDialog.java index 917f078d52..da0649d804 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/dialog/TemplateThemeGridPagesDialog.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/dialog/TemplateThemeGridPagesDialog.java @@ -28,7 +28,7 @@ public class TemplateThemeGridPagesDialog extends TemplateThemeDialog implements @Override protected JPanel createContentPane() { - overallPane = new TemplateThemeGridPagesPane(); + overallPane = new TemplateThemeGridPagesPane(this); overallPane.setPageChangeListener(this); return overallPane; } @@ -43,12 +43,6 @@ public class TemplateThemeGridPagesDialog extends TemplateThemeDialog implements return overallPane.createRightButtons(); } - @Override - public void exit() { - overallPane.exit(); - super.exit(); - } - @Override public void onPageChangeListener() { setupActionButtons(); From 022ae69f07bb6f0280f167c77279a61dcb210145 Mon Sep 17 00:00:00 2001 From: Starryi Date: Thu, 21 Oct 2021 18:08:25 +0800 Subject: [PATCH 10/25] =?UTF-8?q?CHART-21593=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E3=80=91=E7=94=9F=E6=88=90=E8=B7=9F=E9=9A=8F?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E7=9A=84=E7=BB=84=E4=BB=B6=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E6=8B=96=E5=88=B0=E5=85=B6=E4=BB=96=E4=B8=BB=E9=A2=98=E7=9A=84?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=B8=AD=EF=BC=8C=E5=9B=BE=E8=A1=A8=E8=BF=98?= =?UTF-8?q?=E6=98=AF=E8=B7=9F=E9=9A=8F=E4=B8=BB=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 处理新添加组件中的图表主题样式 【改动思路】 同上 --- .../com/fr/design/designer/creator/XCreatorUtils.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java b/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java index 4087231522..30f9ab3074 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator; +import com.fr.base.chart.BaseChartCollection; import com.fr.base.theme.FineColorFlushUtils; import com.fr.base.theme.FineColorGather; import com.fr.base.theme.FineColorManager; @@ -86,6 +87,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.Icon; import java.awt.Container; import java.awt.Dimension; +import java.util.List; /** * XCreator的相关处理 @@ -384,7 +386,12 @@ public class XCreatorUtils { public static void setupTemplateTheme(XCreator container, final boolean forceFollowingTheme, final FormTheme currentTemplateUsingTheme, TemplateThemeCompatible compatible) { FineColorGather colorGather = new FineColorManager.FineColorReplaceByTheme(currentTemplateUsingTheme, compatible); - Form.traversalWidget(container.toData(), new WidgetGather() { + Widget root = container.toData(); + List chartCollections = root.getChartCollections(); + for (BaseChartCollection chartCollection: chartCollections) { + chartCollection.onTemplateUsingThemeChange(currentTemplateUsingTheme, compatible); + } + Form.traversalWidget(root, new WidgetGather() { @Override public void dealWith(Widget widget) { TemplateThemeAware themedWidget = (TemplateThemeAware) widget; From 851978c77062f462db22ec1f3150c9d02a06ea4f Mon Sep 17 00:00:00 2001 From: Starryi Date: Thu, 21 Oct 2021 18:10:35 +0800 Subject: [PATCH 11/25] =?UTF-8?q?REPORT-61373=20=E3=80=90=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E8=8E=B7=E5=8F=96=E3=80=9111.0=E7=9A=84=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E8=BD=BD=E4=B8=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 被测试组件仅存在于测试服务器,而下载组件使用的 是正式服务器地址。所以下载失败 【改动思路】 下载组件的地址修改为可根据配置文件自动切换的地址 --- .../com/fr/design/mainframe/share/util/DownloadUtils.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/share/util/DownloadUtils.java b/designer-form/src/main/java/com/fr/design/mainframe/share/util/DownloadUtils.java index c5b90c7856..83ca9a6a34 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/share/util/DownloadUtils.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/share/util/DownloadUtils.java @@ -39,12 +39,14 @@ import java.security.KeyFactory; import java.security.interfaces.RSAPublicKey; import java.security.spec.X509EncodedKeySpec; +import static com.fr.form.share.constants.ShareComponentConstants.REU_INFO_PATH; + /** * created by Harrison on 2020/05/27 **/ public class DownloadUtils { - private static final String REUSES_URL = CloudCenter.getInstance().acquireUrlByKind("af.reuseInfo") + "file/download"; - private static final String PACKAGE_REUSES_URL = CloudCenter.getInstance().acquireUrlByKind("af.reuseInfo") + "package/download/"; + private static final String REUSES_URL = StableUtils.pathJoin(ShareComponentConstants.REU_INFO_PATH, "file/download"); + private static final String PACKAGE_REUSES_URL = StableUtils.pathJoin(ShareComponentConstants.REU_INFO_PATH, "package/download/"); private static final String CERTIFICATE_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtsz62CPSWXZE/IYZRiAuTSZkw\n" + "1WOwer8+JFktK0uKLAUuQoBr+UjAMFtRA8W7JgKMDwZy/2liEAiXEOSPU/hrdV8D\n" + "tT541LnGi1X/hXiRwuttPWYN3L2GYm/d5blU+FBNwghBIrdAxXTzYBc6P4KL/oYX\n" + From c84f900dc67dcab74841a97c599e08cd12b70d55 Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 20 Oct 2021 18:58:09 +0800 Subject: [PATCH 12/25] =?UTF-8?q?CHART-21560=20=E3=80=90FR11=E3=80=91?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8tab=E5=88=87=E6=8D=A2=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E7=BC=96=E8=BE=91=E5=A4=B1=E6=95=88=EF=BC=8C?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=A7=A6=E5=8F=91=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 点击UITabGroup的标签页按钮时,不应该触发fireStateChange, 因为没有配置修改 【改动思路】 同上 --- .../src/main/java/com/fr/design/gui/ibutton/UIButtonGroup.java | 2 +- .../src/main/java/com/fr/design/gui/ibutton/UITabGroup.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButtonGroup.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButtonGroup.java index cbebaf9d8f..2dc3ab6292 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButtonGroup.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIButtonGroup.java @@ -314,7 +314,7 @@ public class UIButtonGroup extends JPanel implements GlobalNameObserver, UIOb * @param newSelectedIndex */ public void setSelectedIndex(int newSelectedIndex) { - setSelectedIndex(newSelectedIndex, true); + setSelectedIndex(newSelectedIndex, false); } private void fireStateChanged() { diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UITabGroup.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UITabGroup.java index 1d74d2e1d3..d772591047 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UITabGroup.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UITabGroup.java @@ -64,7 +64,7 @@ public class UITabGroup extends UIButtonGroup { @Override protected void setSelectedIndex(int newSelectedIndex, boolean fireChanged) { - super.setSelectedIndex(newSelectedIndex, fireChanged); + super.setSelectedIndex(newSelectedIndex, false); tabChanged(newSelectedIndex); } } \ No newline at end of file From 9c6e4040ef9550db9c75c3f7fe26646b51692168 Mon Sep 17 00:00:00 2001 From: Starryi Date: Fri, 22 Oct 2021 10:56:41 +0800 Subject: [PATCH 13/25] =?UTF-8?q?CHART-21579=20=E6=A8=A1=E7=89=88=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E7=BC=96=E8=BE=91=E9=A1=B5=E9=9D=A2-=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8-=E7=B3=BB=E5=88=97-=E6=B8=90=E5=8F=98=E8=89=B2?= =?UTF-8?q?=E7=9A=84=E8=89=B2=E5=80=BC=E8=81=94=E5=8A=A8=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 交互变更:只有选择了选色控件中的主题色部分才会被重置 联动,若用户选择了自定义配色则不会被重置. 【改动思路】 同上 --- .../fr/design/mainframe/theme/TemplateThemeEditorPane.java | 3 --- .../fr/design/mainframe/theme/edit/ChartStyleEditPane.java | 5 ----- .../mainframe/theme/edit/chart/ChartSeriesStylePane.java | 6 ------ 3 files changed, 14 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeEditorPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeEditorPane.java index e924080ef6..0b26f6f8e7 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeEditorPane.java @@ -17,7 +17,6 @@ import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.theme.edit.CellStyleListEditPane; import com.fr.design.mainframe.theme.edit.ChartStyleEditPane; -import com.fr.design.mainframe.theme.edit.ui.ColorListExtendedPane; import com.fr.design.mainframe.theme.edit.ui.ColorListPane; import com.fr.design.mainframe.theme.edit.ui.LabelUtils; import com.fr.design.mainframe.theme.ui.AutoCheckTextField; @@ -163,8 +162,6 @@ public abstract class TemplateThemeEditorPane extends J FineColorFlushUtils.replaceCacheObject(theme, replaceByColorScheme); FineColorManager.traverse(theme, replaceByColorScheme); populateBean4CustomEditors(theme); - //图表渐变色 - chartStyleSettingPane.populateGradientBar(colors); this.repaint(); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/ChartStyleEditPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/ChartStyleEditPane.java index 3830f02f15..4d75622aed 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/ChartStyleEditPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/ChartStyleEditPane.java @@ -13,7 +13,6 @@ import com.fr.design.mainframe.theme.edit.chart.ChartTitleAndBackgroundStylePane import javax.swing.BorderFactory; import java.util.ArrayList; import java.util.List; -import java.awt.Color; /** * @author Bjorn @@ -88,10 +87,6 @@ public class ChartStyleEditPane extends MultiTabPane { return chartStyle; } - public void populateGradientBar(List colors) { - chartSeriesStylePane.populateGradientBar(colors); - } - @Override public boolean accept(Object ob) { return false; diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/chart/ChartSeriesStylePane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/chart/ChartSeriesStylePane.java index fbb8f64895..098dc468d7 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/chart/ChartSeriesStylePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/edit/chart/ChartSeriesStylePane.java @@ -74,12 +74,6 @@ public class ChartSeriesStylePane extends AbstractChartStylePane { checkTypeButton(); } - - public void populateGradientBar(List colors) { - gradientBar.updateColor(colors.get(0), colors.get(1)); - this.repaint(); - } - public void update(ThemedChartStyle chartStyle) { chartStyle.getThemedChartSeriesColor().setCombineColor(colorTypeButton.getSelectedIndex() == 0); chartStyle.getThemedChartSeriesColor().setBeginColor(gradientBar.getSelectColorPointBtnP1().getColorInner()); From ff933895d9c8a05ebfc3ab694bd371fe4ed68644 Mon Sep 17 00:00:00 2001 From: Lanlan Date: Fri, 22 Oct 2021 11:49:44 +0800 Subject: [PATCH 14/25] =?UTF-8?q?REPORT-60366=20fr11-linux=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8-=E6=8F=92=E4=BB=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/extra/PluginUtils.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java index ed7253bad2..5a5b58f776 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java @@ -80,10 +80,12 @@ public class PluginUtils { public static String transPluginsToString(List plugins) throws Exception { JSONArray jsonArray = new JSONArray(); for (PluginContext plugin : plugins) { - JSONObject jo = new JSONObject(); - jo.put("id", plugin.getID()); - jo.put("version", plugin.getVersion()); - jsonArray.put(jo); + if (VersionIntervalType.isSupported(plugin.supportCurrentFRVersion())) { + JSONObject jo = new JSONObject(); + jo.put("id", plugin.getID()); + jo.put("version", plugin.getVersion()); + jsonArray.put(jo); + } } return jsonArray.toString(); } From 6d1ffd15fa7bab6fa3828fd548799cdf4a06280c Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Fri, 22 Oct 2021 11:51:10 +0800 Subject: [PATCH 15/25] =?UTF-8?q?REPORT-61207=20=E5=BC=95=E5=AF=BC?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=AD=97=E4=BD=93=E6=98=BE=E7=A4=BA=E4=B8=8D?= =?UTF-8?q?=E5=AF=B9=E4=B8=94=E8=A2=AB=E6=88=AA=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../guide/ui/GuideCompleteDialog.java | 21 ++++---------- .../guide/ui/GuideLoadingGlassPane.java | 2 +- .../guide/ui/bubble/BubbleWithClose.java | 25 ++++------------- .../mainframe/guide/utils/GuideUIUtils.java | 28 +++++++++++++++++++ 4 files changed, 40 insertions(+), 36 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/mainframe/guide/utils/GuideUIUtils.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideCompleteDialog.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideCompleteDialog.java index b90c5718c6..1d5b907e3b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideCompleteDialog.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideCompleteDialog.java @@ -7,6 +7,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.guide.utils.GuideUIUtils; import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.general.IOUtils; @@ -14,9 +15,7 @@ import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JDialog; import javax.swing.JPanel; -import javax.swing.JTextPane; import javax.swing.SwingConstants; -import javax.swing.text.MutableAttributeSet; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; @@ -37,9 +36,9 @@ public class GuideCompleteDialog extends JDialog { private static final int ICON_HEIGHT = 182; private static final Color FONT_COLOR = new Color(51, 51, 52); private static final Color BUTTON_BG_COLOR = new Color(65, 155,249); - private static final Font TITLE_FONT = new Font(Font.SANS_SERIF, Font.BOLD, 22); - private static final Font CONTENT_FONT = new Font(Font.SANS_SERIF, Font.PLAIN, 18); - private static final Font BUTTON_FONT = new Font(Font.SANS_SERIF, Font.BOLD, 14); + private static final Font TITLE_FONT = new Font("Default", Font.BOLD, 22); + private static final Font CONTENT_FONT = new Font("Default", Font.PLAIN, 18); + private static final Font BUTTON_FONT = new Font("Default", Font.BOLD, 14); private static GuideCompleteDialog dialog; public static GuideCompleteDialog getInstance() { @@ -78,12 +77,11 @@ public class GuideCompleteDialog extends JDialog { title.setForeground(FONT_COLOR); textArea = new UITextPane(); - changeLineSpacing(textArea, 0.15f,false); + textArea.setFont(CONTENT_FONT); + GuideUIUtils.setTextPaneLineHeight(textArea, 26); textArea.setEnabled(false); textArea.setOpaque(false); - textArea.setFont(CONTENT_FONT); textArea.setPreferredSize(new Dimension(236, 52)); - textArea.setBorder(null); textArea.setDisabledTextColor(FONT_COLOR); StyledDocument doc = textArea.getStyledDocument(); SimpleAttributeSet center = new SimpleAttributeSet(); @@ -141,11 +139,4 @@ public class GuideCompleteDialog extends JDialog { } } }; - - private void changeLineSpacing(JTextPane pane, float factor, boolean replace) { - pane.selectAll(); - MutableAttributeSet set = new SimpleAttributeSet(pane.getParagraphAttributes()); - StyleConstants.setLineSpacing(set, factor); - pane.setParagraphAttributes(set, replace); - } } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideLoadingGlassPane.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideLoadingGlassPane.java index 47a10d0be8..44590540da 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideLoadingGlassPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/GuideLoadingGlassPane.java @@ -40,7 +40,7 @@ public class GuideLoadingGlassPane extends JPanel { imageContainer.add(GuideLoadingPane.getInstance()); UILabel hintLabel = new UILabel(Toolkit.i18nText("Fine-Design_Guide_Loading_Wait")); - hintLabel.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 14)); + hintLabel.setFont(new Font("Default", Font.PLAIN, 14)); hintLabel.setHorizontalAlignment(SwingConstants.CENTER); hintLabel.setForeground(Color.WHITE); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/bubble/BubbleWithClose.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/bubble/BubbleWithClose.java index 62e0ed65d0..6851c09cd5 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/bubble/BubbleWithClose.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/ui/bubble/BubbleWithClose.java @@ -4,12 +4,12 @@ package com.fr.design.mainframe.guide.ui.bubble; import com.fr.base.GraphHelper; import com.fr.design.gui.frpane.UITextPane; import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.mainframe.guide.utils.GuideUIUtils; import com.fr.general.IOUtils; import com.fr.stable.StringUtils; import javax.swing.Icon; import javax.swing.JTextPane; -import javax.swing.text.MutableAttributeSet; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; @@ -32,8 +32,8 @@ import java.text.AttributedCharacterIterator; import java.text.AttributedString; public class BubbleWithClose extends Bubble { - private static final Font TITLE_FONT = new Font(Font.SANS_SERIF, Font.PLAIN, 14); - private static final Font CONTENT_FONT = new Font(Font.SANS_SERIF, Font.PLAIN, 12); + private static final Font TITLE_FONT = new Font("Default", Font.PLAIN, 14); + private static final Font CONTENT_FONT = new Font("Default", Font.PLAIN, 12); private static final int TITLE_LINE_HEIGHT = 22; private static final int CONTENT_LINE_HEIGHT = 18; @@ -157,33 +157,18 @@ public class BubbleWithClose extends Bubble { } private UITextPane createTextArea(String str, Font font, int lineHeight, Color foreground) { - int lineSpace = lineHeight - font.getSize(); - UITextPane textArea= new UITextPane(){ - @Override - public Insets getInsets() { - return new Insets(lineSpace / 2 - 1, 0, lineSpace / 2, 0); - } - }; + UITextPane textArea= new UITextPane(); textArea.setFont(font); - changeLineSpacing(textArea, lineHeight, true); + GuideUIUtils.setTextPaneLineHeight(textArea, lineHeight); textArea.setEditable(false); textArea.setForeground(foreground); textArea.setDisabledTextColor(foreground); - textArea.setBorder(null); textArea.setOpaque(false); textArea.setText(str); highlightText(textArea); return textArea; } - private void changeLineSpacing(JTextPane pane, int lineHeight, boolean replace) { - pane.selectAll(); - MutableAttributeSet set = new SimpleAttributeSet(pane.getParagraphAttributes()); - FontMetrics fontMetrics = GraphHelper.getFontMetrics(pane.getFont()); - StyleConstants.setLineSpacing(set, (float)(lineHeight - fontMetrics.getHeight()) / fontMetrics.getHeight()); - pane.setParagraphAttributes(set, replace); - } - private void highlightText(JTextPane textArea) { SimpleAttributeSet sas = new SimpleAttributeSet(); StyleConstants.setForeground(sas, HIGHLIGHT_COLOR); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/utils/GuideUIUtils.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/utils/GuideUIUtils.java new file mode 100644 index 0000000000..bd6ee33102 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/utils/GuideUIUtils.java @@ -0,0 +1,28 @@ +package com.fr.design.mainframe.guide.utils; + +import com.fr.base.GraphHelper; + +import javax.swing.BorderFactory; +import javax.swing.JTextPane; +import javax.swing.text.MutableAttributeSet; +import javax.swing.text.SimpleAttributeSet; +import javax.swing.text.StyleConstants; +import java.awt.FontMetrics; +import java.awt.Insets; + +public class GuideUIUtils { + public static void setTextPaneLineHeight(JTextPane pane, int lineHeight) { + pane.selectAll(); + pane.setMargin(new Insets(0,0,0,0)); + MutableAttributeSet set = new SimpleAttributeSet(pane.getParagraphAttributes()); + FontMetrics fontMetrics = GraphHelper.getFontMetrics(pane.getFont()); + int delta = (lineHeight - fontMetrics.getHeight()) / 2 * 2 ; + if (delta > 0) { + StyleConstants.setLineSpacing(set, delta/ 2.0f / fontMetrics.getHeight()); + pane.setParagraphAttributes(set, false); + int dis = fontMetrics.getDescent() - fontMetrics.getLeading(); + int marginTop = dis > 0 ? ((delta - dis) / 2 + dis) : ((delta - dis) / 2); + pane.setBorder(BorderFactory.createEmptyBorder(marginTop, 0,0,0)); + } + } +} From eb31aef59573a73a670000332b17fd66ad24766a Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Fri, 22 Oct 2021 13:53:11 +0800 Subject: [PATCH 16/25] =?UTF-8?q?REPORT-60896=20=E5=BC=95=E5=AF=BC?= =?UTF-8?q?=E8=92=99=E5=B1=82=E6=9C=89=E6=AE=8B=E7=95=99=E9=98=B4=E5=BD=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/guide/base/Guide.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java index 9469f931a1..fc35b742d4 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java @@ -135,15 +135,20 @@ public class Guide { public void start() { guideView.hideLoading(); - if (scene != null) { - guideView.setScene(scene); - guideView.showGuide(); - if (lifecycle != null) { - lifecycle.onStart(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (scene != null) { + guideView.setScene(scene); + guideView.showGuide(); + if (lifecycle != null) { + lifecycle.onStart(); + } + } else { + complete(); + } } - } else { - complete(); - } + }); } public void complete() { From fae9afc11f79744c6d93da1632109117a28e82b7 Mon Sep 17 00:00:00 2001 From: Starryi Date: Fri, 22 Oct 2021 14:03:45 +0800 Subject: [PATCH 17/25] =?UTF-8?q?REPORT-61413=20=E3=80=90=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E5=88=87=E6=8D=A2=E3=80=91cpt=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E5=9B=BE=E9=87=8C=E7=9A=84=E5=B7=A6=E4=B8=8A=E8=A7=92=E6=96=9C?= =?UTF-8?q?=E7=BA=BF=E5=8D=95=E5=85=83=E6=A0=BC=E5=BA=94=E8=AF=A5=E5=92=8C?= =?UTF-8?q?=E5=B0=8F=E6=A0=87=E9=A2=98=E6=A0=BC=E5=BC=8F=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 表头单元格适用于小标题样式 【改动思路】 同上 --- .../mainframe/theme/preview/ecpreview/ECReportPreviewPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/preview/ecpreview/ECReportPreviewPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/preview/ecpreview/ECReportPreviewPane.java index 63d75449dc..885f480b7e 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/preview/ecpreview/ECReportPreviewPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/preview/ecpreview/ECReportPreviewPane.java @@ -68,7 +68,7 @@ public class ECReportPreviewPane extends UINoOpaquePanel implements ThemePreview Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_EC_Data"), Toolkit.i18nText("Fine-Design_Basic_Template_Theme_Profile_Pane_Row_Name")}, new Point2D[]{new Point(159, 71), new Point(225, 49)}); cornerCell.setPreferredSize(new Dimension(225, 71)); - headerCellList.add(cornerCell); + titleCellList.add(cornerCell); northPane.add(cornerCell, BorderLayout.WEST); JPanel centerPane = FRGUIPaneFactory.createBorderLayout_NO_Opaque_Pane(); northPane.add(centerPane, BorderLayout.CENTER); From 900de178295f427720a062a31f66a9d011121e0f Mon Sep 17 00:00:00 2001 From: Starryi Date: Fri, 22 Oct 2021 14:31:29 +0800 Subject: [PATCH 18/25] =?UTF-8?q?REPORT-61415=20=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E8=89=B2=E9=A2=9C=E8=89=B2=E9=80=89=E6=8B=A9=E6=A1=86=E9=BB=91?= =?UTF-8?q?=E8=89=B2=E5=88=97=E4=B8=8D=E7=AC=A6=E5=90=88=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 修改黑色列标准色色值 【改动思路】 同上 --- .../main/java/com/fr/design/style/color/NewColorSelectPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 180055b3e0..22be3f4dcf 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 @@ -169,7 +169,7 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { Color.decode("#CCCCCC"), // 2列灰度色 - Color.decode("#333333"), + Color.decode("#000000"), Color.decode("#FFFFFF"), }; From adadb5169054967dcfb91c8141bac6cfb483de98 Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Fri, 22 Oct 2021 15:23:54 +0800 Subject: [PATCH 19/25] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E5=BC=95=E5=AF=BC=E4=BB=BB=E5=8A=A1=E7=9A=84=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/layout/UseLayoutAndComponentGuide.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/UseLayoutAndComponentGuide.java b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/UseLayoutAndComponentGuide.java index 05f0d20be0..78e75d8f20 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/UseLayoutAndComponentGuide.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/layout/UseLayoutAndComponentGuide.java @@ -47,9 +47,9 @@ import java.util.TimerTask; public class UseLayoutAndComponentGuide { private static final String[] PRE_INSTALL_COMPONENTS = { - "大屏标题-酷炫蓝.25fcd194-d4db-406f-8a08-210f3c262870.reu", - "散点闪烁地图-酷炫蓝.5e17c2eb-5b18-4b6c-854a-5ffff7f6337a.reu", - "排名明细表.b4dab4f2-7b1a-4540-a2d4-65c3e080334e.reu" + "新功能引导-标题.309634e8-2946-43a7-aea5-1d3fb68c8823.reu", + "新功能引导-左侧组件.76797e8e-1e56-480a-b07c-3acb05b604ca.reu", + "新功能引导-右侧组件.35fbbb73-da84-479d-b387-1da7b05b23e8.reu" }; private static final String RESOURCE_PATH = "/com/fr/report/guide/component"; private static UIHeadMenu fileHeadMenu; @@ -62,9 +62,9 @@ public class UseLayoutAndComponentGuide { .nextScene(createScene3()) .nextScene(createScene4()) .nextScene(createScene5()) - .nextScene(createScene6("box0","25fcd194-d4db-406f-8a08-210f3c262870")) - .nextScene(createScene6("box1","5e17c2eb-5b18-4b6c-854a-5ffff7f6337a")) - .nextScene(createScene6("box2","b4dab4f2-7b1a-4540-a2d4-65c3e080334e")) + .nextScene(createScene6("box0","309634e8-2946-43a7-aea5-1d3fb68c8823")) + .nextScene(createScene6("box1","76797e8e-1e56-480a-b07c-3acb05b604ca")) + .nextScene(createScene6("box2","35fbbb73-da84-479d-b387-1da7b05b23e8")) .nextScene(GuideSceneHelper.createFormDesignerBodyDisplayScene()) .nextScene(GuideSceneHelper.createPreviewClickScene()); From 29fa11b255a33dcb93591614a45b5848458168d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Fri, 22 Oct 2021 22:20:18 +0800 Subject: [PATCH 20/25] =?UTF-8?q?REPORT-61301=20=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E6=8E=A8=E8=8D=90-mac=E8=AE=BE=E8=AE=A1=E5=99=A8=E5=85=A8?= =?UTF-8?q?=E5=B1=8F=E6=97=B6=EF=BC=8C=E5=9B=BA=E5=AE=9A=E5=B8=83=E5=B1=80?= =?UTF-8?q?/=E9=9D=9E=E5=9B=BA=E5=AE=9A=E5=B8=83=E5=B1=80=E7=9A=84?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E9=A3=98=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/FormArea.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java b/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java index e08c1c652d..be001e8810 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe; -import com.fr.common.inputevent.InputEventBaseOnOS; import com.fr.design.actions.UpdateAction; import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.events.DesignerEvent; @@ -11,23 +10,22 @@ import com.fr.design.designer.creator.XWFitLayout; import com.fr.design.fit.DesignerUIModeConfig; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButtonUI; -import com.fr.design.gui.imenu.UIPopupMenu; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.share.ui.base.PopupMenuItem; -import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.design.utils.gui.GUIPaintUtils; -import com.fr.form.fit.NewFormMarkAttr; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.gui.itextfield.UINumberField; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.share.ui.base.PopupMenuItem; import com.fr.design.scrollruler.BaseRuler; import com.fr.design.scrollruler.HorizontalRuler; import com.fr.design.scrollruler.RulerLayout; import com.fr.design.scrollruler.ScrollRulerComponent; import com.fr.design.scrollruler.VerticalRuler; import com.fr.design.utils.ComponentUtils; +import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.design.utils.gui.LayoutUtils; +import com.fr.form.fit.NewFormMarkAttr; import com.fr.form.main.mobile.FormMobileAttr; import com.fr.form.ui.container.WBodyLayoutType; import com.fr.form.ui.container.WBorderLayout; @@ -35,7 +33,6 @@ import com.fr.form.ui.container.WFitLayout; import com.fr.general.IOUtils; import com.fr.stable.AssistUtils; - import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.BorderFactory; @@ -65,7 +62,6 @@ import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; @@ -214,7 +210,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent { button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - GUICoreUtils.showPopupMenu(popupMenu, fixLayoutSwitchButton, 0, -59); + popupMenu.show(fixLayoutSwitchButton, 0, -59); } }); button.setVisible(!isAbsoluteBodyLayout()); @@ -1022,4 +1018,4 @@ public class FormArea extends JComponent implements ScrollRulerComponent { -} +} \ No newline at end of file From 5f66ff0fec214c6773c5b5c17c6511630669c5d1 Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Fri, 22 Oct 2021 23:31:47 +0800 Subject: [PATCH 21/25] =?UTF-8?q?REPORT-60896=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/guide/base/Guide.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java index fc35b742d4..9469f931a1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java @@ -135,20 +135,15 @@ public class Guide { public void start() { guideView.hideLoading(); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (scene != null) { - guideView.setScene(scene); - guideView.showGuide(); - if (lifecycle != null) { - lifecycle.onStart(); - } - } else { - complete(); - } + if (scene != null) { + guideView.setScene(scene); + guideView.showGuide(); + if (lifecycle != null) { + lifecycle.onStart(); } - }); + } else { + complete(); + } } public void complete() { From 00b387bc29f3f98609881c7a972b8741e15e7795 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 25 Oct 2021 00:28:22 +0800 Subject: [PATCH 22/25] =?UTF-8?q?REPORT-61437=20=E5=AF=BC=E5=87=BA-?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BA=8B=E4=BB=B6-=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=91=BD=E5=90=8D-=E6=8F=90=E7=A4=BA=E6=96=87?= =?UTF-8?q?=E5=AD=97=E4=BC=9A=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/javascript/ExportJavaScriptPane.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java b/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java index 9b323a88e6..e43857e21e 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java @@ -110,6 +110,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane" + Toolkit.i18nText("Fine-Design_Basic_Export_JS_Title_Tip_Front") + "\\/:*?\"<>|" + Toolkit.i18nText("Fine-Design_Basic_Export_JS_Title_Tip_Back") + ""); + fileNameTipLabel = new UILabel("" + Toolkit.i18nText("Fine-Design_Basic_Export_JS_Title_Tip_Front") + "\\/:*?\"<>|" + Toolkit.i18nText("Fine-Design_Basic_Export_JS_Title_Tip_Back") + ""); fileNameTipLabel.setVisible(false); fileNameRadioGroup.addActionListener(new ActionListener() { @Override @@ -221,6 +222,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane Date: Mon, 25 Oct 2021 09:38:09 +0800 Subject: [PATCH 23/25] =?UTF-8?q?REPORT-61299=20=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E7=B1=BB=E9=9D=A2=E6=9D=BF=E9=AB=98=E4=BA=AE=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E4=B8=8D=E5=8A=A0=E7=99=BD=E8=BE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../guide/scene/AbstractGuideScene.java | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java index 5ead71c621..5f22d620e5 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java @@ -75,13 +75,16 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { if (component instanceof JComponent) { JComponent jComponent = (JComponent) component; image = ScreenImage.createImage(jComponent); + highlightList.add(getTargetComponentWithImage(image, rectangle, true)); } else if (component instanceof Window) { image = ScreenImage.createImage(component); + highlightList.add(getTargetComponentWithImage(image, rectangle, false)); } else { image = captureImage(component); + highlightList.add(getTargetComponentWithImage(image, rectangle,true)); } targetList.add(component); - highlightList.add(getTargetComponentWithImage(image, rectangle)); + return true; } catch (AWTException e) { e.printStackTrace(); @@ -99,7 +102,7 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { try { targetList.add(null); BufferedImage image = captureImage(rectangle); - highlightList.add(getTargetComponentWithImage(image, rectangle)); + highlightList.add(getTargetComponentWithImage(image, rectangle, true)); return true; } catch (AWTException e) { e.printStackTrace(); @@ -133,7 +136,7 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { image = ScreenImage.createImage(component).getSubimage(origin.x, origin.y, origin.width, origin.height); } targetList.add(component); - highlightList.add(getTargetComponentWithImage(image, rectangle)); + highlightList.add(getTargetComponentWithImage(image, rectangle, true)); return true; } catch (AWTException e) { e.printStackTrace(); @@ -170,22 +173,29 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { return highlightList; } - private UILabel getTargetComponentWithImage(BufferedImage image, Rectangle rectangle) { + private UILabel getTargetComponentWithImage(BufferedImage image, Rectangle rectangle, boolean showBorder) { ImageIcon ic = new ImageIcon(image); - UILabel label = new UILabel(ic){ - @Override - public Insets getInsets() { - return DEFAULT_HIGHLIGHT_INSETS; - } - }; - label.setBackground(Color.WHITE); - label.setOpaque(true); - label.setBounds(new Rectangle( - rectangle.x - DEFAULT_HIGHLIGHT_INSETS.left, - rectangle.y - DEFAULT_HIGHLIGHT_INSETS.top, - rectangle.width + DEFAULT_HIGHLIGHT_INSETS.left + DEFAULT_HIGHLIGHT_INSETS.right, - rectangle.height + DEFAULT_HIGHLIGHT_INSETS.top + DEFAULT_HIGHLIGHT_INSETS.bottom - )); + UILabel label; + if (showBorder) { + label = new UILabel(ic){ + @Override + public Insets getInsets() { + return DEFAULT_HIGHLIGHT_INSETS; + } + }; + label.setBackground(Color.WHITE); + label.setOpaque(true); + label.setBounds(new Rectangle( + rectangle.x - DEFAULT_HIGHLIGHT_INSETS.left, + rectangle.y - DEFAULT_HIGHLIGHT_INSETS.top, + rectangle.width + DEFAULT_HIGHLIGHT_INSETS.left + DEFAULT_HIGHLIGHT_INSETS.right, + rectangle.height + DEFAULT_HIGHLIGHT_INSETS.top + DEFAULT_HIGHLIGHT_INSETS.bottom + )); + } else { + label = new UILabel(ic); + label.setBounds(rectangle); + } + return label; } From 626fd1add99dc6765c091f90a9ea99d6d698cedd Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Mon, 25 Oct 2021 11:31:20 +0800 Subject: [PATCH 24/25] =?UTF-8?q?REPORT-61299=20popupMenu=E7=9A=84?= =?UTF-8?q?=E5=AD=90=E7=BB=84=E4=BB=B6=E9=AB=98=E4=BA=AE=E4=B8=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/guide/scene/AbstractGuideScene.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java index 5f22d620e5..cdb1765ffb 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/AbstractGuideScene.java @@ -13,6 +13,7 @@ import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.JPanel; +import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; import java.awt.AWTException; import java.awt.AlphaComposite; @@ -75,7 +76,7 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { if (component instanceof JComponent) { JComponent jComponent = (JComponent) component; image = ScreenImage.createImage(jComponent); - highlightList.add(getTargetComponentWithImage(image, rectangle, true)); + highlightList.add(getTargetComponentWithImage(image, rectangle, !(component.getParent() instanceof JPopupMenu))); } else if (component instanceof Window) { image = ScreenImage.createImage(component); highlightList.add(getTargetComponentWithImage(image, rectangle, false)); From 7ace9cb7ebff3d6f527f5d29fbdbcb63f20744d0 Mon Sep 17 00:00:00 2001 From: kuangshuai Date: Mon, 25 Oct 2021 11:49:18 +0800 Subject: [PATCH 25/25] =?UTF-8?q?REPORT-60896=20mac=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E8=92=99=E5=B1=82=E7=BB=93=E6=9D=9F=E5=90=8E=E6=9C=89=E9=81=97?= =?UTF-8?q?=E7=95=99=E9=80=8F=E6=98=8E=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/guide/base/Guide.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java index 9469f931a1..c8d3e6801d 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/base/Guide.java @@ -10,6 +10,8 @@ import com.fr.stable.StringUtils; import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; +import java.awt.event.HierarchyEvent; +import java.awt.event.HierarchyListener; public class Guide { private String id; @@ -101,7 +103,7 @@ public class Guide { } GuideManager.getInstance().setCurrentGuide(this); guideView.showLoading(); - + guideView.addHierarchyListener(loadingHierarchyListener); new SwingWorker() { @Override protected Boolean doInBackground() { @@ -135,6 +137,9 @@ public class Guide { public void start() { guideView.hideLoading(); + } + + private void startScene() { if (scene != null) { guideView.setScene(scene); guideView.showGuide(); @@ -161,6 +166,7 @@ public class Guide { if (lifecycle != null) { lifecycle.onTerminate(); } + guideView.removeHierarchyListener(loadingHierarchyListener); end(); } @@ -186,4 +192,12 @@ public class Guide { public void removeGuideLifecycle() { this.lifecycle = null; } + + private HierarchyListener loadingHierarchyListener = new HierarchyListener() { + @Override + public void hierarchyChanged(HierarchyEvent e) { + guideView.removeHierarchyListener(loadingHierarchyListener); + startScene(); + } + }; }