UX-1 new SearchEverywhere popup

* fill search field with text selected in editor
This commit is contained in:
Mikhail Sokolov
2018-05-23 19:44:11 +03:00
parent 8d087762d4
commit c7a595647b
4 changed files with 12 additions and 4 deletions
@@ -351,7 +351,7 @@ public abstract class GotoActionBase extends AnAction {
}
IdeEventQueue.getInstance().getPopupManager().closeAllPopups(false);
seManager.show(searchProviderID);
seManager.show(searchProviderID, getInitialTextForNavigation(evnt.getData(CommonDataKeys.EDITOR)));
}
private static boolean historyEnabled() {
@@ -582,7 +582,8 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA
}
IdeEventQueue.getInstance().getPopupManager().closeAllPopups(false);
seManager.show(searchProviderID);
String text = GotoActionBase.getInitialTextForNavigation(e.getData(CommonDataKeys.EDITOR));
seManager.show(searchProviderID, text);
return;
}
@@ -4,6 +4,7 @@ package com.intellij.ide.actions.searcheverywhere;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author Mikhail.Sokolov
@@ -16,7 +17,7 @@ public interface SearchEverywhereManager {
boolean isShown();
void show(@NotNull String selectedContributorID); //todo change to contributor??? UX-1
void show(@NotNull String selectedContributorID, @Nullable String searchText); //todo change to contributor??? UX-1
String getShownContributorID();
@@ -14,6 +14,7 @@ import com.intellij.ui.SearchTextField;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
@@ -51,13 +52,18 @@ public class SearchEverywhereManagerImpl implements SearchEverywhereManager {
}
@Override
public void show(@NotNull String selectedContributorID) {
public void show(@NotNull String selectedContributorID, @Nullable String searchText) {
if (isShown()) {
setShownContributor(selectedContributorID);
}
else {
mySearchEverywhereUI = createView(myProject, myServiceContributors, myShownContributors);
mySearchEverywhereUI.switchToContributor(selectedContributorID);
if (searchText != null && !searchText.isEmpty()) {
mySearchEverywhereUI.getSearchField().setText(searchText);
mySearchEverywhereUI.getSearchField().selectAll();
}
myHistoryIterator = myHistoryList.getIterator(selectedContributorID);
myBalloon = JBPopupFactory.getInstance().createComponentPopupBuilder(mySearchEverywhereUI, mySearchEverywhereUI.getSearchField())
.setProject(myProject)