From a374cf2fdbc26af50c66d79fe167e9af3211b71d Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Thu, 14 Oct 2021 09:51:00 +0800 Subject: [PATCH 1/6] =?UTF-8?q?REPORT-60535=20=E8=A1=A8=E5=8D=95=E6=96=B0?= =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E5=8D=95=E5=85=83=E6=A0=BC=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E2=80=9C=E7=94=A8=E4=B8=8B=E8=BD=BD=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BA=8C=E8=BF=9B=E5=88=B6=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E2=80=9D=E8=AE=BE=E8=AE=A1=E5=99=A8=E5=92=8CPC=E6=89=93?= =?UTF-8?q?=E5=BC=80=E9=A2=9C=E8=89=B2=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/cell/settingpane/CellOtherSetPane.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java index bcf1244d31..0ea7713ca9 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.cell.settingpane; +import com.fr.base.Style; import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.UIConstants; import com.fr.design.editor.ValueEditorPane; @@ -21,11 +22,13 @@ import com.fr.design.mainframe.theme.utils.DefaultThemedTemplateCellElementCase; import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; import com.fr.general.ComparatorUtils; +import com.fr.general.FRFont; import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.cellattr.CellGUIAttr; import com.fr.report.cell.cellattr.CellInsertPolicyAttr; import com.fr.report.cell.cellattr.CellPageAttr; import com.fr.report.elementcase.TemplateElementCase; +import com.fr.stable.Constants; import com.fr.stable.StringUtils; import com.fr.design.i18n.Toolkit; import java.awt.Color; @@ -327,13 +330,20 @@ public class CellOtherSetPane extends AbstractCellAttrPane { @Override public void itemStateChanged(ItemEvent e) { + Style elementStyle = cellElement.getStyle(); + FRFont frFont = elementStyle.getFRFont(); if (showContent.getSelectedIndex() == 3) { fileNamePane.setPreferredSize(new Dimension(100, 20)); fileNameLayout.show(fileNamePane, "content"); + frFont = frFont.applyForeground(Color.blue); + frFont = frFont.applyUnderline(Constants.LINE_THIN); } else { fileNameLayout.show(fileNamePane, "none"); fileNamePane.setPreferredSize(new Dimension(0, 0)); + frFont = frFont.applyForeground(Color.black); + frFont = frFont.applyUnderline(Constants.LINE_NONE); } + cellElement.setStyle(elementStyle.deriveFRFont(frFont)); } }); return fileNamePane; From a64885d6eb8ecc74dd2c908870195dd55534b7ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Thu, 14 Oct 2021 16:42:30 +0800 Subject: [PATCH 2/6] =?UTF-8?q?REPORT-59545=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=BE=88=E5=A4=9A=E6=8A=A5=E9=94=99=E6=8F=90=E7=A4=BA=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E7=9A=84=E4=BA=A4=E4=BA=92=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/formula/FormulaChecker.java | 17 +++--- .../formula/FormulaCheckerException.java | 11 ++++ .../com/fr/design/formula/FormulaPane.java | 60 ++++++++++++------- 3 files changed, 61 insertions(+), 27 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/formula/FormulaCheckerException.java diff --git a/designer-base/src/main/java/com/fr/design/formula/FormulaChecker.java b/designer-base/src/main/java/com/fr/design/formula/FormulaChecker.java index 093f26edf8..59446169d3 100644 --- a/designer-base/src/main/java/com/fr/design/formula/FormulaChecker.java +++ b/designer-base/src/main/java/com/fr/design/formula/FormulaChecker.java @@ -25,7 +25,7 @@ public class FormulaChecker { private static final String INVALID_FORMULA = Toolkit.i18nText("Fine-Design_Basic_FormulaD_Invalid_Formula"); public static final String COLON = ":"; - public static String check(String formulaText) { + public static String check(String formulaText) throws FormulaCheckerException { StringReader in = new StringReader(formulaText); FRLexer lexer = new FRLexer(in); @@ -34,12 +34,15 @@ public class FormulaChecker { try { Expression expression = parser.parse(); Node node = expression.getConditionalExpression(); - return FunctionCheckerDispatcher.getInstance() - .getFunctionChecker(node) - .checkFunction(node) ? VALID_FORMULA : INVALID_FORMULA; + boolean valid = FunctionCheckerDispatcher.getInstance().getFunctionChecker(node).checkFunction(node); + if (valid) { + return VALID_FORMULA; + } else { + throw new FormulaCheckerException(INVALID_FORMULA); + } } catch (ConditionCheckWrongException cce) { String functionName = cce.getFunctionName(); - return functionName + Toolkit.i18nText("Fine-Design_Basic_Formula_Check_Condition_Tips") + COLON; + throw new FormulaCheckerException(functionName + Toolkit.i18nText("Fine-Design_Basic_Formula_Check_Condition_Tips") + COLON); } catch (FunctionCheckWrongException ce) { List rules = ce.getRules(); String functionName = ce.getFunctionName(); @@ -60,10 +63,10 @@ public class FormulaChecker { errorMsg.append(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Formula_Check_Or")); } } - return errorMsg.toString(); + throw new FormulaCheckerException(errorMsg.toString()); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - return INVALID_FORMULA; + throw new FormulaCheckerException(INVALID_FORMULA); // alex:继续往下面走,expression为null时告知不合法公式 } } diff --git a/designer-base/src/main/java/com/fr/design/formula/FormulaCheckerException.java b/designer-base/src/main/java/com/fr/design/formula/FormulaCheckerException.java new file mode 100644 index 0000000000..42fc585cbb --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/formula/FormulaCheckerException.java @@ -0,0 +1,11 @@ +package com.fr.design.formula; + +public class FormulaCheckerException extends Exception { + public FormulaCheckerException() { + + } + + public FormulaCheckerException(String message) { + super(message); + } +} diff --git a/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java b/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java index 447421a415..6012bba195 100644 --- a/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java +++ b/designer-base/src/main/java/com/fr/design/formula/FormulaPane.java @@ -650,12 +650,14 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { public void actionPerformed(ActionEvent evt) { // Execute Formula default cell element. String formulaText = formulaTextArea.getText().trim(); - String formulaValidMessage = FormulaChecker.check(formulaText); - FineJOptionPane.showMessageDialog( - FormulaPane.this, - formulaValidMessage + ".", - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), - JOptionPane.WARNING_MESSAGE); + String formulaValidMessage; + try { + formulaValidMessage = FormulaChecker.check(formulaText); + showMessageDialog(formulaValidMessage + "."); + } catch (FormulaCheckerException e) { + formulaValidMessage = e.getMessage(); + showMessageDialog(formulaValidMessage + ".", false); + } } }; @@ -663,22 +665,26 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { @Override public void actionPerformed(ActionEvent e) { String formulaText = formulaTextArea.getText().trim(); - String formulaValidMessage = FormulaChecker.check(formulaText); - ; String unSupportFormula = containsUnsupportedSimulationFormulas(formulaText); if (unSupportFormula != null) { - FineJOptionPane.showMessageDialog( - FormulaPane.this, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Formula_Unsupported_Formulas") + ":" + unSupportFormula, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), - JOptionPane.INFORMATION_MESSAGE); + showMessageDialog(Toolkit.i18nText("Fine-Design_Basic_Formula_Unsupported_Formulas") + ":" + unSupportFormula, false); return; } + + String formulaValidMessage; + boolean formulaValid; + try { + formulaValidMessage = FormulaChecker.check(formulaText); + formulaValid = true; + } catch (FormulaCheckerException formulaCheckerException) { + formulaValidMessage = formulaCheckerException.getMessage(); + formulaValid = false; + } String messageTips; - if (formulaValidMessage.equals(INVALID_FORMULA)) { + if (ComparatorUtils.equals(formulaValidMessage, INVALID_FORMULA)) { messageTips = INVALID_FORMULA; } else { - messageTips = formulaValidMessage.equals(VALID_FORMULA) ? "" : formulaValidMessage + "\n"; + messageTips = ComparatorUtils.equals(formulaValidMessage, VALID_FORMULA) ? "" : formulaValidMessage + "\n"; Map paramsMap = setParamsIfExist(formulaText); Calculator calculator = Calculator.createCalculator(); ParameterMapNameSpace parameterMapNameSpace = ParameterMapNameSpace.create(paramsMap); @@ -699,19 +705,33 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula { String result = objectToString.length() > DEFUAL_FOMULA_LENGTH ? objectToString.substring(0, DEFUAL_FOMULA_LENGTH - ELLIPSIS.length()) + ELLIPSIS : objectToString; messageTips = messageTips + - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Formula_Cal_Result") + ":" + result; + Toolkit.i18nText("Fine-Design_Basic_Formula_Cal_Result") + ":" + result; FineLoggerFactory.getLogger().info("value:{}", value); } catch (UtilEvalError utilEvalError) { FineLoggerFactory.getLogger().error("", utilEvalError); } } + showMessageDialog(messageTips, formulaValid); + } + }; + + private void showMessageDialog(String message) { + showMessageDialog(message, true); + } + + private void showMessageDialog(String message, boolean formulaValid) { + if (formulaValid) { + FineJOptionPane.showMessageDialog( + FormulaPane.this, + message); + } else { FineJOptionPane.showMessageDialog( FormulaPane.this, - messageTips, - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), - JOptionPane.INFORMATION_MESSAGE); + message, + Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"), + JOptionPane.WARNING_MESSAGE); } - }; + } private String containsUnsupportedSimulationFormulas(String formulaText) { try { From 10a55919ae344a8f8ee7dada36d0f0d892785160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Thu, 14 Oct 2021 17:45:53 +0800 Subject: [PATCH 3/6] =?UTF-8?q?REPORT-60900=20=E8=A7=86=E8=A7=89=E5=88=87?= =?UTF-8?q?=E5=9B=BE=E6=8F=90=E4=BE=9B=E7=9A=84=E6=9C=89=E7=82=B9=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E6=89=BE=E8=A7=86=E8=A7=89=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BA=86=E5=88=87=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/layouts/images/simple_style_18.png | Bin 10548 -> 9640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_18.png diff --git a/designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_18.png b/designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_18.png old mode 100644 new mode 100755 index 656494c55a8c9cbae8796d4f67ebf7e428ad1339..362a57cf5ebc72a58cdc6b4c664ad6416fa2f13c GIT binary patch literal 9640 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 WLuIq7D%|K59#~yhtzOkW>i+;ptqi>Y literal 10548 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 From 25b2b65066dca667207f2bdd62c0b7464721aee1 Mon Sep 17 00:00:00 2001 From: pengda Date: Fri, 15 Oct 2021 17:24:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?REPORT-60992=20=E5=AF=BC=E5=87=BA-=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BA=8B=E4=BB=B6-=E5=85=B6=E4=BB=96=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF-=E7=82=B9=E5=87=BB=E6=A8=A1=E6=9D=BF=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8E=E6=95=88=E6=9E=9C=E9=94=99=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/javascript/ExportJavaScriptPane.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 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 a0a8e6b11d..4060eb13e2 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 @@ -326,16 +326,19 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane Date: Fri, 15 Oct 2021 19:52:45 +0800 Subject: [PATCH 5/6] =?UTF-8?q?REPORT-60919=20&&=20REPORT-60899=20?= =?UTF-8?q?=E5=BC=95=E5=AF=BC=E9=A1=B5=E4=BC=98=E5=8C=96=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E7=B1=BB=E7=9A=84=E5=BC=95=E5=AF=BC=E5=BF=AB?= =?UTF-8?q?=E9=80=9F=E7=82=B9=E5=87=BB=E5=8F=91=E7=94=9F=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../guide/scene/AbstractGuideScene.java | 17 ++--- .../mainframe/guide/scene/ClickScene.java | 73 +++++++++++-------- .../guide/creator/GuideSceneHelper.java | 2 - .../layout/ChangeLayoutComponentGuide.java | 23 +++--- .../layout/UseLayoutAndComponentGuide.java | 24 +++--- .../theme/DownloadComponentPackageGuide.java | 2 +- .../guide/creator/theme/ThemeToggleGuide.java | 5 +- 7 files changed, 74 insertions(+), 72 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 f0d74789d2..240244fff2 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 @@ -307,9 +307,6 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { nextButton.setBounds((getSceneWidth() - 60) / 2, getSceneHeight() - 100, 60, 30); add(nextButton); } - - container.revalidate(); - container.repaint(); } showContainer(); if (lifecycle != null) { @@ -319,9 +316,7 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { @Override public void complete() { - container.getLayeredPane().remove(this); - container.repaint(); - + clear(); if (lifecycle != null && !lifecycle.onComplete()) { return; } @@ -386,13 +381,15 @@ public abstract class AbstractGuideScene extends JPanel implements GuideScene { return container.getLayeredPane().getHeight(); } - private void clear() { + public void clear() { targetList = new ArrayList<>(); highlightList = new ArrayList<>(); this.nextButton = null; - this.removeAll(); - invalidate(); - repaint(); + if (this.getComponentCount() > 0) { + this.removeAll(); + invalidate(); + repaint(); + } } @Override diff --git a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/ClickScene.java b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/ClickScene.java index 6217f41e7b..0d8b5711b0 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/ClickScene.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/guide/scene/ClickScene.java @@ -1,13 +1,15 @@ package com.fr.design.mainframe.guide.scene; +import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.mainframe.guide.base.GuideManager; import javax.swing.AbstractButton; -import javax.swing.ButtonModel; import javax.swing.SwingUtilities; import java.awt.Component; import java.awt.Point; import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -58,49 +60,60 @@ public class ClickScene extends AbstractGuideScene{ public void mouseClicked(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) { if ((e.getClickCount() == 1 && clickType == ClickType.LEFT) || (e.getClickCount() == 2 && clickType == ClickType.LEFT_DOUBLE)) { - if (isDispatch) { - redispatchMouseEvent(e, target); - } - complete(); + dealWithDispatchLeftClick(target, e, isDispatch); } } else if (e.getButton() == MouseEvent.BUTTON3 && clickType == ClickType.RIGHT) { - if (isDispatch) { - redispatchMouseEvent(e, target); - } - complete(); + clear(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (isDispatch) { + redispatchMouseEvent(e, target); + } + complete(); + } + }); } + } + @Override public void mousePressed(MouseEvent e) { - if (isDispatch) { - if (target instanceof AbstractButton) { - AbstractButton b = (AbstractButton) target; - b.setFocusable(false); + if ((target instanceof AbstractButton) && (target.getParent() instanceof UIButtonGroup)) { + if (isDispatch) { + redispatchMouseEvent(e, target); } - redispatchMouseEvent(e, target); - } - } - - @Override - public void mouseReleased(MouseEvent e) { - if (isDispatch) { - redispatchMouseEvent(e, target); } - } - @Override - public void mouseEntered(MouseEvent e) { - if (isDispatch) { - redispatchMouseEvent(e, target); - } } + }); + } + private void dealWithDispatchLeftClick(Component target, MouseEvent e, boolean isDispatch) { + clear(); + SwingUtilities.invokeLater(new Runnable() { @Override - public void mouseExited(MouseEvent e) { + public void run() { if (isDispatch) { - redispatchMouseEvent(e, target); + if (target instanceof AbstractButton) { + AbstractButton button = (AbstractButton) target; + ActionListener[] actionListeners= button.getActionListeners(); + for(int i = 0; i < actionListeners.length; i++) { + ActionListener actionListener = actionListeners[i]; + actionListener.actionPerformed(new ActionEvent( + button, + ActionEvent.ACTION_PERFORMED, + button.getActionCommand(), + e.getWhen(), + e.getModifiers() + )); + } + } else { + redispatchMouseEvent(e, target); + } } + complete(); } }); } @@ -114,7 +127,7 @@ public class ClickScene extends AbstractGuideScene{ @Override public void showScene() { // 交互类的 scene 如果没有高亮内容块载,需要及时终止Guide,否则就没法去掉模态框影响到设计器主功能的使用了 - if (this.getComponentCount() == 0) { + if (this.getComponentCount() == 0 && getHighlightList().isEmpty()) { GuideManager.getInstance().getCurrentGuide().terminate(); } else { super.showScene(); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/GuideSceneHelper.java b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/GuideSceneHelper.java index ff80efcf9c..2131fda07d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/GuideSceneHelper.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/GuideSceneHelper.java @@ -19,8 +19,6 @@ import com.fr.design.utils.ComponentUtils; import com.fr.design.worker.save.CallbackSaveWorker; import com.fr.design.worker.save.EmptyCallBackSaveWorker; -import java.awt.Window; - public class GuideSceneHelper { public static GuideScene createFormDesignerBodyDisplayScene() { DisplayScene scene = new DisplayScene(); 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 335837196a..a9b7f56c8d 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 @@ -98,20 +98,15 @@ public class ChangeLayoutComponentGuide { @Override public boolean prepared() { switchButton.getComponentPopupMenu().setVisible(true); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - scene.addCustomTarget( - GuideCreateUtils.createModalTarget(switchButton.getComponentPopupMenu()), - GuideCreateUtils.getRelativeBounds(switchButton.getComponentPopupMenu(), switchButton,0, -switchButton.getComponentPopupMenu().getHeight()) - ); - 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); - switchButton.getComponentPopupMenu().setVisible(false); - scene.showScene(); - } - }); - return false; + scene.addCustomTarget( + GuideCreateUtils.createModalTarget(switchButton.getComponentPopupMenu()), + GuideCreateUtils.getRelativeBounds(switchButton.getComponentPopupMenu(), switchButton,0, -switchButton.getComponentPopupMenu().getHeight()) + ); + 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); + switchButton.getComponentPopupMenu().setVisible(false); + scene.showScene(); + return true; } }); return scene; 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 6234ea7902..54fc5577bd 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 @@ -32,6 +32,7 @@ import com.fr.form.share.group.DefaultShareGroup; import com.fr.form.share.group.DefaultShareGroupManager; import com.fr.stable.StringUtils; +import javax.swing.JComponent; import java.awt.Component; import java.util.ArrayList; import java.util.List; @@ -72,15 +73,11 @@ public class UseLayoutAndComponentGuide { preloadShareComponent(); Component component = ComponentUtils.findComponentByName(NorthRegionContainerPane.getInstance(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File")); fileHeadMenu = ((UIHeadMenu) component); - fileHeadMenu.setSelected(true); - fileHeadMenu.getPopupMenu().show(fileHeadMenu, 0, fileHeadMenu.getHeight()); return true; } @Override public void onEnd() { - fileHeadMenu.setSelected(false); - fileHeadMenu.getPopupMenu().setVisible(false); if (newFormPane != null) { newFormPane.getWindow().dispose(); } @@ -101,18 +98,18 @@ public class UseLayoutAndComponentGuide { GuideCreateUtils.createModalTarget(fileHeadMenu.getPopupMenu()), GuideCreateUtils.getRelativeBounds(fileHeadMenu.getPopupMenu(), fileHeadMenu, 0 , fileHeadMenu.getHeight()) ); - scene.addClickTarget(fileHeadMenu.getMenuComponent(2), ClickScene.ClickType.LEFT); - scene.addBubbleTip(Toolkit.i18nText("Fine-Design_Guide_Scene_F001001_Tip_New_Form"), GuideTip.Direction.BOTTOM); + scene.addCustomClickTarget( + GuideCreateUtils.createTarget((JComponent) fileHeadMenu.getMenuComponent(2)), + GuideCreateUtils.getRelativeBounds(fileHeadMenu.getMenuComponent(2), fileHeadMenu, 0,fileHeadMenu.getHeight() + fileHeadMenu.getMenuComponent(2).getY()), + ClickScene.ClickType.LEFT + ); + + scene.addBubbleTip(Toolkit.i18nText("Fine-Design_Guide_Scene_F001001_Tip_New_Form") + "测试文本测试文本测试文本测试文本测试文本", GuideTip.Direction.BOTTOM); scene.showScene(); return true; } - - @Override - public void onShow() { - fileHeadMenu.setSelected(false); - fileHeadMenu.getPopupMenu().setVisible(false); - } + @Override public boolean onComplete() { @@ -124,6 +121,7 @@ public class UseLayoutAndComponentGuide { return scene; } + public static GuideScene createScene2() { DisplayScene scene = new DisplayScene(); scene.registerLifecycle(new GuideSceneLifecycleAdaptor() { @@ -136,7 +134,7 @@ public class UseLayoutAndComponentGuide { scene.showScene(); GuideCreateUtils.TIMER.purge(); } - }, 300); + }, 100); return false; } }); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/DownloadComponentPackageGuide.java b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/DownloadComponentPackageGuide.java index d36506c94c..349857a3b2 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/DownloadComponentPackageGuide.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/DownloadComponentPackageGuide.java @@ -247,7 +247,7 @@ public class DownloadComponentPackageGuide { scene.showScene(); GuideCreateUtils.TIMER.purge(); } - }, 300); + }, 100); return false; } }); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/ThemeToggleGuide.java b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/ThemeToggleGuide.java index 2387a470c5..5b7024778c 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/ThemeToggleGuide.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/guide/creator/theme/ThemeToggleGuide.java @@ -105,7 +105,7 @@ public class ThemeToggleGuide { scene.showScene(); GuideCreateUtils.TIMER.purge(); } - },300); + },100); return false; } }); @@ -163,7 +163,7 @@ public class ThemeToggleGuide { if (target2 != null) { uiButtonGroup[0] = (UIButtonGroup) target2; target2 = ((UIButtonGroup) target2).getButton(0); - scene.addClickTarget(target2, ClickScene.ClickType.LEFT, true); + scene.addClickTarget(target2, ClickScene.ClickType.LEFT,true); scene.addBubbleTip( Toolkit.i18nText("Fine-Design_Guide_Scene_F002001_Tip_Toggle_Follow_Theme"), Toolkit.i18nText("Fine-Design_Guide_Scene_F002001_Tip_Toggle_Follow_Theme_Description"), @@ -183,6 +183,7 @@ public class ThemeToggleGuide { if (uiButtonGroup[0] != null) { uiButtonGroup[0].setSelectedIndex(0); } + GuideCreateUtils.getFormDesigner().repaint(); return true; } }); From 41ac183f99eed00a79d918790c3db43bc8a1c6a4 Mon Sep 17 00:00:00 2001 From: pengda Date: Sun, 17 Oct 2021 23:00:01 +0800 Subject: [PATCH 6/6] =?UTF-8?q?REPORT-60995=20=E5=AF=BC=E5=87=BA-=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=BA=8B=E4=BB=B6-=E5=8F=82=E6=95=B0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE-=E5=8F=96=E6=B6=88=E5=8B=BE=E9=80=89=E7=BB=A7?= =?UTF-8?q?=E6=89=BF=E6=8A=A5=E8=A1=A8=E5=90=8E=E5=BC=B9=E7=AA=97=E5=85=B3?= =?UTF-8?q?=E4=B8=8D=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/javascript/ExportJavaScriptPane.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 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 4060eb13e2..ba64b4d4d7 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 @@ -780,11 +780,13 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane parameterList = parameterViewPane.update(); - if (!parameterList.isEmpty()) { - Parameter[] parameters = new Parameter[parameterList.size()]; - parameterList.toArray(parameters); - js.setParameters(parameters); + if (parameterViewPane != null) { + List parameterList = parameterViewPane.update(); + if (!parameterList.isEmpty()) { + Parameter[] parameters = new Parameter[parameterList.size()]; + parameterList.toArray(parameters); + js.setParameters(parameters); + } } } exportJavaScript.addJS(js);