diff from console: use original component from relative point available when constructed from MouseEvent only (IDEA-140347)

This commit is contained in:
Anna Kozlova
2015-06-15 21:21:06 +03:00
parent 5b8dabb8e1
commit aba01014f7
2 changed files with 14 additions and 5 deletions
@@ -135,8 +135,9 @@ public class EditorHyperlinkSupport {
@Override
public void run() {
if (hyperlinkInfo instanceof HyperlinkInfoBase) {
RelativePoint point = new RelativePoint(myEditor.getContentComponent(), myEditor.logicalPositionToXY(logical));
((HyperlinkInfoBase)hyperlinkInfo).navigate(myProject, point);
final Point point = myEditor.logicalPositionToXY(logical);
final MouseEvent event = new MouseEvent(myEditor.getContentComponent(), 0, 0, 0, point.x, point.y, 1, false);
((HyperlinkInfoBase)hyperlinkInfo).navigate(myProject, new RelativePoint(event));
}
else {
hyperlinkInfo.navigate(myProject);
@@ -22,6 +22,7 @@ package com.intellij.execution.testframework.stacktrace;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.filters.HyperlinkInfo;
import com.intellij.execution.filters.HyperlinkInfoBase;
import com.intellij.execution.testframework.AbstractTestProxy;
import com.intellij.execution.testframework.Printable;
import com.intellij.execution.testframework.Printer;
@@ -31,6 +32,9 @@ import com.intellij.ide.DataManager;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.ui.awt.RelativePoint;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
@@ -135,9 +139,13 @@ public class DiffHyperlink implements Printable {
return result;
}
public class DiffHyperlinkInfo implements HyperlinkInfo {
public void navigate(final Project project) {
ViewAssertEqualsDiffAction.openDiff(DataManager.getInstance().getDataContext(), DiffHyperlink.this);
public class DiffHyperlinkInfo extends HyperlinkInfoBase {
@Override
public void navigate(@NotNull Project project, @Nullable RelativePoint hyperlinkLocationPoint) {
final DataManager dataManager = DataManager.getInstance();
final DataContext dataContext = hyperlinkLocationPoint != null ?
dataManager.getDataContext(hyperlinkLocationPoint.getOriginalComponent()) : dataManager.getDataContext();
ViewAssertEqualsDiffAction.openDiff(dataContext, DiffHyperlink.this);
}
public DiffHyperlink getPrintable() {