From 930eba2cc4dbb95becd2a66438037a9039190b3c Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Tue, 31 May 2016 17:04:43 +0200 Subject: [PATCH] IDEA-143263 Find In Path is not autopopulating a selection from Find Preview window --- .../intellij/usages/impl/UsagePreviewPanel.java | 15 ++++++++++++++- .../com/intellij/usages/impl/UsageViewImpl.java | 5 ++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java b/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java index 6cdc38e60b53..f323abb22c45 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java @@ -17,6 +17,7 @@ package com.intellij.usages.impl; import com.intellij.lang.injection.InjectedLanguageManager; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.*; @@ -34,6 +35,7 @@ import com.intellij.usageView.UsageViewBundle; import com.intellij.usages.UsageContextPanel; import com.intellij.usages.UsageView; import com.intellij.usages.UsageViewPresentation; +import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -44,7 +46,7 @@ import java.util.List; /** * @author cdr */ -public class UsagePreviewPanel extends UsageContextPanelBase { +public class UsagePreviewPanel extends UsageContextPanelBase implements DataProvider { private static final Logger LOG = Logger.getInstance("#com.intellij.usages.impl.UsagePreviewPanel"); private Editor myEditor; private final boolean myIsEditor; @@ -61,6 +63,15 @@ public class UsagePreviewPanel extends UsageContextPanelBase { myIsEditor = isEditor; } + @Nullable + @Override + public Object getData(@NonNls String dataId) { + if (CommonDataKeys.EDITOR.getName().equals(dataId) && myEditor != null) { + return myEditor; + } + return null; + } + public static class Provider implements UsageContextPanel.Provider { @NotNull @Override @@ -211,6 +222,8 @@ public class UsagePreviewPanel extends UsageContextPanelBase { } } + + @Override public void updateLayoutLater(@Nullable final List infos) { if (infos == null) { diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java index ad2819ecd883..26ae90a2a369 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java @@ -1572,7 +1572,10 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra VirtualFile[] data = UsageDataUtil.provideVirtualFileArray(ua, getSelectedUsageTargets()); sink.put(CommonDataKeys.VIRTUAL_FILE_ARRAY, data); } - + else if (key == CommonDataKeys.EDITOR && myCurrentUsageContextPanel instanceof DataProvider) { + Object editor = ((DataProvider)myCurrentUsageContextPanel).getData(key.getName()); + if (editor != null) sink.put(key, editor); + } else if (key == PlatformDataKeys.HELP_ID) { sink.put(PlatformDataKeys.HELP_ID, HELP_ID); }