From 254e874dc4a582c3a9eb2d38969d535bb4fe09e3 Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 15 Jun 2020 17:19:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-33690=20UIManager=E4=B8=AD=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=9B=91=E5=90=AC=20=E6=B2=A1=E6=9C=89=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=E9=85=8D=E5=AF=B9=E7=A7=BB=E9=99=A4=20?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E5=86=85=E5=AD=98=E6=B3=84=E9=9C=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/javascript/JSContentPane.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java index cd6e01df3..da0910126 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java @@ -21,6 +21,8 @@ import com.fr.general.IOUtils; import javax.swing.*; import java.awt.*; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; @@ -82,6 +84,28 @@ public class JSContentPane extends BasicPane { UIScrollPane sp = new UIScrollPane(contentTextArea); this.add(sp, BorderLayout.CENTER); + contentTextArea.addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent e) { + if (ac == null) { + CompletionProvider provider = createCompletionProvider(); + ac = new AutoCompletion(provider); + String shortCuts = DesignerEnvManager.getEnvManager().getAutoCompleteShortcuts(); + + ac.setTriggerKey(convert2KeyStroke(shortCuts)); + ac.install(contentTextArea); + } + } + + @Override + public void focusLost(FocusEvent e) { + if (ac != null) { + ac.uninstall(); + ac = null; + } + } + }); + UILabel funNameLabel2 = new UILabel(); funNameLabel2.setText("}"); this.add(funNameLabel2, BorderLayout.SOUTH); @@ -97,24 +121,10 @@ public class JSContentPane extends BasicPane { } public void populate(String js) { - if (ac == null) { - CompletionProvider provider = createCompletionProvider(); - ac = new AutoCompletion(provider); - String shortCuts = DesignerEnvManager.getEnvManager().getAutoCompleteShortcuts(); - - ac.setTriggerKey(convert2KeyStroke(shortCuts)); - ac.install(contentTextArea); - } - this.contentTextArea.setText(js); } public String update() { - if (ac != null) { - this.ac.uninstall(); - ac = null; - } - return this.contentTextArea.getText(); } From f5a89c3de8635d6564d462ab21682c38296bef79 Mon Sep 17 00:00:00 2001 From: hades Date: Tue, 16 Jun 2020 10:26:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-33690=20=E6=8A=BD=E5=87=BA=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/javascript/JSContentPane.java | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java index da0910126..2ca2d6e66 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java @@ -87,22 +87,14 @@ public class JSContentPane extends BasicPane { contentTextArea.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { - if (ac == null) { - CompletionProvider provider = createCompletionProvider(); - ac = new AutoCompletion(provider); - String shortCuts = DesignerEnvManager.getEnvManager().getAutoCompleteShortcuts(); - - ac.setTriggerKey(convert2KeyStroke(shortCuts)); - ac.install(contentTextArea); - } + // 获得焦点时 安装 + installAutoCompletion(); } @Override public void focusLost(FocusEvent e) { - if (ac != null) { - ac.uninstall(); - ac = null; - } + // 失去焦点时 卸载 + uninstallAutoCompletion(); } }); @@ -115,6 +107,30 @@ public class JSContentPane extends BasicPane { return KeyStroke.getKeyStroke(ks.replace("+", "pressed")); } + /** + * 注册安装 自动补全监听 + */ + private void installAutoCompletion() { + if (ac == null) { + CompletionProvider provider = createCompletionProvider(); + ac = new AutoCompletion(provider); + String shortCuts = DesignerEnvManager.getEnvManager().getAutoCompleteShortcuts(); + + ac.setTriggerKey(convert2KeyStroke(shortCuts)); + ac.install(contentTextArea); + } + } + + /** + * 卸载移除 自动补全监听 + */ + private void uninstallAutoCompletion() { + if (ac != null) { + ac.uninstall(); + ac = null; + } + } + @Override protected String title4PopupWindow() { return "JS";