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 <mbie...@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-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

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

Reply via email to