diff --git a/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt b/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt index bee3d4d8adcf..4bf164714b41 100644 --- a/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt +++ b/grid/impl/src/run/ui/TableResultPanelUIDataRule.kt @@ -5,6 +5,7 @@ import com.intellij.database.datagrid.GridUtil import com.intellij.database.run.actions.DeleteRowsAction import com.intellij.database.run.ui.grid.GridCopyProvider import com.intellij.database.run.ui.grid.GridPasteProvider +import com.intellij.ide.impl.StructureViewWrapperImpl.Companion.STRUCTURE_VIEW_TARGET_FILE_KEY import com.intellij.openapi.actionSystem.CommonDataKeys.EDITOR import com.intellij.openapi.actionSystem.DataSink import com.intellij.openapi.actionSystem.DataSnapshot @@ -14,6 +15,9 @@ import com.intellij.openapi.actionSystem.PlatformDataKeys.DELETE_ELEMENT_PROVIDE import com.intellij.openapi.actionSystem.PlatformDataKeys.PASTE_PROVIDER import com.intellij.openapi.actionSystem.UiDataRule import com.intellij.openapi.editor.ex.EditorEx +import com.intellij.openapi.fileEditor.FileDocumentManager +import com.intellij.openapi.vfs.VirtualFile +import java.util.Optional class TableResultPanelUIDataRule : UiDataRule { override fun uiDataSnapshot(sink: DataSink, snapshot: DataSnapshot) { @@ -27,6 +31,10 @@ class TableResultPanelUIDataRule : UiDataRule { class InnerEditorsTableResultPanelUIDataRule : UiDataRule { override fun uiDataSnapshot(sink: DataSink, snapshot: DataSnapshot) { val editor = snapshot[EDITOR] as? EditorEx ?: return + + @Suppress("UNCHECKED_CAST") // the cast is safe because java optional doesn't care about nullability + sink[STRUCTURE_VIEW_TARGET_FILE_KEY] = Optional.ofNullable(FileDocumentManager.getInstance().getFile(editor.document)) as Optional? + sink[COPY_PROVIDER] = editor.getCopyProvider() sink[PASTE_PROVIDER] = editor.getPasteProvider() sink[CUT_PROVIDER] = editor.getCutProvider()