[vcs-log] extract TextFilterClass
authorJulia Beliaeva <Julia.Beliaeva@jetbrains.com>
Mon, 3 Oct 2016 15:55:30 +0000 (18:55 +0300)
committerJulia Beliaeva <Julia.Beliaeva@jetbrains.com>
Mon, 10 Oct 2016 15:26:30 +0000 (18:26 +0300)
platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogClassicFilterUi.java

index f9ca45939586ebab3c4ba3304e83990f865e7521..3b8e4fa1852573e113ce6177e592718b0e1021a0 100644 (file)
@@ -110,33 +110,7 @@ public class VcsLogClassicFilterUi implements VcsLogFilterUi {
 
   @NotNull
   public SearchTextField createTextFilter() {
-    final SearchTextFieldWithStoredHistory textFilter = new SearchTextFieldWithStoredHistory(VCS_LOG_TEXT_FILTER_HISTORY) {
-      @Override
-      protected void onFieldCleared() {
-        myTextFilterModel.setFilter(null);
-      }
-    };
-    textFilter.setText(myTextFilterModel.getText());
-    textFilter.getTextEditor().addActionListener(e -> {
-      myTextFilterModel.setFilter(new VcsLogTextFilterImpl(textFilter.getText()));
-      textFilter.addCurrentTextToHistory();
-    });
-    textFilter.addDocumentListener(new DocumentAdapter() {
-      @Override
-      protected void textChanged(DocumentEvent e) {
-        try {
-          myTextFilterModel.setUnsavedText(e.getDocument().getText(0, e.getDocument().getLength()));
-        }
-        catch (BadLocationException ex) {
-          LOG.error(ex);
-        }
-      }
-    });
-    String shortcutText = KeymapUtil.getFirstKeyboardShortcutText(VcsLogActionPlaces.VCS_LOG_FOCUS_TEXT_FILTER);
-    if (!shortcutText.isEmpty()) {
-      textFilter.getTextEditor().setToolTipText("Use " + shortcutText + " to switch between text filter and commits list");
-    }
-    return textFilter;
+    return new TextFilterField(myTextFilterModel);
   }
 
   /**
@@ -454,4 +428,38 @@ public class VcsLogClassicFilterUi implements VcsLogFilterUi {
       return ContainerUtil.newArrayList(((VcsLogUserFilterImpl)filter).getUserNamesForPresentation());
     }
   }
+
+  private static class TextFilterField extends SearchTextFieldWithStoredHistory {
+    @NotNull private final TextFilterModel myTextFilterModel;
+
+    public TextFilterField(@NotNull TextFilterModel model) {
+      super(VCS_LOG_TEXT_FILTER_HISTORY);
+      myTextFilterModel = model;
+      setText(myTextFilterModel.getText());
+      getTextEditor().addActionListener(e -> {
+        myTextFilterModel.setFilter(new VcsLogTextFilterImpl(getText()));
+        addCurrentTextToHistory();
+      });
+      addDocumentListener(new DocumentAdapter() {
+        @Override
+        protected void textChanged(DocumentEvent e) {
+          try {
+            myTextFilterModel.setUnsavedText(e.getDocument().getText(0, e.getDocument().getLength()));
+          }
+          catch (BadLocationException ex) {
+            LOG.error(ex);
+          }
+        }
+      });
+      String shortcutText = KeymapUtil.getFirstKeyboardShortcutText(VcsLogActionPlaces.VCS_LOG_FOCUS_TEXT_FILTER);
+      if (!shortcutText.isEmpty()) {
+        getTextEditor().setToolTipText("Use " + shortcutText + " to switch between text filter and commits list");
+      }
+    }
+
+    @Override
+    protected void onFieldCleared() {
+      myTextFilterModel.setFilter(null);
+    }
+  }
 }