You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ne...@apache.org on 2022/01/22 17:39:34 UTC

[netbeans] branch delivery updated: set shift+enter as line break and add multi-line info message.

This is an automated email from the ASF dual-hosted git repository.

neilcsmith pushed a commit to branch delivery
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/delivery by this push:
     new 41a8292  set shift+enter as line break and add multi-line info message.
     new 83fe403  Merge pull request #3489 from mbien/use-the-mouse
41a8292 is described below

commit 41a829221227fb35abb056402bc92319aa5d8933
Author: Michael Bien <mb...@gmail.com>
AuthorDate: Sat Jan 22 00:52:24 2022 +0100

    set shift+enter as line break and add multi-line info message.
---
 .../org/netbeans/modules/search/BasicSearchForm.java  | 19 ++++++++++++++++---
 .../netbeans/modules/search/BasicSearchProvider.java  |  3 ++-
 .../src/org/netbeans/modules/search/Bundle.properties |  1 +
 .../org/netbeans/modules/search/PatternSandbox.java   |  2 +-
 .../modules/search/ui/ShorteningCellRenderer.java     |  2 +-
 5 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/platform/api.search/src/org/netbeans/modules/search/BasicSearchForm.java b/platform/api.search/src/org/netbeans/modules/search/BasicSearchForm.java
index 585f734..6071120 100644
--- a/platform/api.search/src/org/netbeans/modules/search/BasicSearchForm.java
+++ b/platform/api.search/src/org/netbeans/modules/search/BasicSearchForm.java
@@ -39,6 +39,7 @@ import java.util.Objects;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.swing.*;
+import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
@@ -216,7 +217,7 @@ final class BasicSearchForm extends JPanel implements ChangeListener,
 
         lblTextToFind = new JLabel();
         JComboBox<String> box = new JComboBox<>();
-        box.setEditor(new MultiLineComboBoxEditor());
+        box.setEditor(new MultiLineComboBoxEditor(box));
         cboxTextToFind = ComponentUtils.adjustComboForSearchPattern(box);
         lblTextToFind.setLabelFor(cboxTextToFind.getComponent());
         btnTestTextToFind = new JButton();
@@ -227,7 +228,7 @@ final class BasicSearchForm extends JPanel implements ChangeListener,
         if (searchAndReplace) {
             lblReplacement = new JLabel();
             cboxReplacement = new JComboBox<>();
-            cboxReplacement.setEditor(new MultiLineComboBoxEditor());
+            cboxReplacement.setEditor(new MultiLineComboBoxEditor(cboxReplacement));
             cboxReplacement.setEditable(true);
             cboxReplacement.setRenderer(new ShorteningCellRenderer());
             lblReplacement.setLabelFor(cboxReplacement);
@@ -1116,11 +1117,23 @@ final class BasicSearchForm extends JPanel implements ChangeListener,
 
         private final JTextArea area = new JTextArea();
 
-        public MultiLineComboBoxEditor() {
+        public MultiLineComboBoxEditor(JComboBox reference) {
             area.setWrapStyleWord(false);
             area.setLineWrap(false);
+
+            Border border = ((JComponent)reference.getEditor().getEditorComponent()).getBorder();
+            if (border == null) {
+                border = reference.getBorder();
+            }
+            area.setBorder(border);
+
+            // retain standard focus traversal behavior
             area.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERS‌​AL_KEYS, null);
             area.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERS‌​AL_KEYS, null);
+
+            // dispatch enter to parent; set line breaks on shift+enter
+            area.getInputMap().put(KeyStroke.getKeyStroke("shift ENTER"), "insert-break");
+            area.getInputMap().put(KeyStroke.getKeyStroke("ENTER"), "text-submit");
         }
 
         @Override
diff --git a/platform/api.search/src/org/netbeans/modules/search/BasicSearchProvider.java b/platform/api.search/src/org/netbeans/modules/search/BasicSearchProvider.java
index f46f7dd..b064acc 100644
--- a/platform/api.search/src/org/netbeans/modules/search/BasicSearchProvider.java
+++ b/platform/api.search/src/org/netbeans/modules/search/BasicSearchProvider.java
@@ -226,7 +226,8 @@ public class BasicSearchProvider extends SearchProvider {
                     notifySupport.setInformationMessage(UiUtils.getText(
                             "BasicSearchForm.txtInfoNoWildcards"));     //NOI18N
                 } else {
-                    notifySupport.clearMessages();
+                    notifySupport.setInformationMessage(UiUtils.getText(
+                            "BasicSearchForm.txtInfoMultiline"));     //NOI18N
                 }
             }
             return usable;
diff --git a/platform/api.search/src/org/netbeans/modules/search/Bundle.properties b/platform/api.search/src/org/netbeans/modules/search/Bundle.properties
index 014597c..bb81352 100644
--- a/platform/api.search/src/org/netbeans/modules/search/Bundle.properties
+++ b/platform/api.search/src/org/netbeans/modules/search/Bundle.properties
@@ -248,6 +248,7 @@ BasicSearchForm.txtErrorTextPattern=Containing Text field contains invalid regul
 BasicSearchForm.txtErrorReplacePattern=Replace With field contains invalid expression
 BasicSearchForm.txtErrorFileName=File Name Patterns field contains invalid regular expression
 BasicSearchForm.txtInfoNoWildcards=File Name Pattern contains no wildcards. It may be a mistake.
+BasicSearchForm.txtInfoMultiline=Resize Window for multi-line search (SHIFT+ENTER for line breaks).
 
 LBL_OptionsPanelTitle=Options
 
diff --git a/platform/api.search/src/org/netbeans/modules/search/PatternSandbox.java b/platform/api.search/src/org/netbeans/modules/search/PatternSandbox.java
index a56cfec..7a25f55 100644
--- a/platform/api.search/src/org/netbeans/modules/search/PatternSandbox.java
+++ b/platform/api.search/src/org/netbeans/modules/search/PatternSandbox.java
@@ -82,7 +82,7 @@ public abstract class PatternSandbox extends JPanel
     protected void initComponents() {
 
         cboxPattern = new JComboBox<String>();
-        cboxPattern.setEditor(new BasicSearchForm.MultiLineComboBoxEditor());
+        cboxPattern.setEditor(new BasicSearchForm.MultiLineComboBoxEditor(cboxPattern));
         cboxPattern.setEditable(true);
         cboxPattern.setRenderer(new ShorteningCellRenderer());
         lblPattern = new JLabel();
diff --git a/platform/api.search/src/org/netbeans/modules/search/ui/ShorteningCellRenderer.java b/platform/api.search/src/org/netbeans/modules/search/ui/ShorteningCellRenderer.java
index be25b8d..fd1d9fd 100644
--- a/platform/api.search/src/org/netbeans/modules/search/ui/ShorteningCellRenderer.java
+++ b/platform/api.search/src/org/netbeans/modules/search/ui/ShorteningCellRenderer.java
@@ -37,7 +37,7 @@ public class ShorteningCellRenderer extends DefaultListCellRenderer {
     @Override
     public Component getListCellRendererComponent(JList<?> list, Object value,
             int index, boolean isSelected, boolean cellHasFocus) {
-        String s = value == null ? null : value.toString();
+        String s = value == null ? null : value.toString().replaceAll("[\r\n]+", " ");
         Component component = super.getListCellRendererComponent(list,
                 s, index, isSelected, cellHasFocus);
         if (s != null && s.length() > COMBO_TEXT_LENGHT_LIMIT

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists