[Build] allow to provide navigatable for a build issue

GitOrigin-RevId: 844c8a25cdf156b406da41103f95486ca4f04261
This commit is contained in:
Vladislav.Soroka
2019-10-03 05:32:01 +00:00
committed by intellij-monorepo-bot
parent 5f2e44f8b1
commit f727764b02
7 changed files with 17 additions and 12 deletions
@@ -1,6 +1,8 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.build.issue
import com.intellij.openapi.project.Project
import com.intellij.pom.Navigatable
import org.jetbrains.annotations.ApiStatus
/**
@@ -11,4 +13,5 @@ interface BuildIssue {
val title: String
val description: String
val quickFixes: List<BuildIssueQuickFix>
fun getNavigatable(project: Project): Navigatable?
}
@@ -10,8 +10,6 @@ import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.function.Function;
/**
* @author Vladislav.Soroka
*/
@@ -19,22 +17,13 @@ import java.util.function.Function;
public class BuildIssueEventImpl extends AbstractBuildEvent implements BuildIssueEvent {
private final BuildIssue myIssue;
private final Kind myKind;
private final Function<Project, Navigatable> myNavigatable;
public BuildIssueEventImpl(@NotNull Object parentId,
@NotNull BuildIssue buildIssue,
@NotNull Kind kind) {
this(parentId, buildIssue, kind, project -> null);
}
public BuildIssueEventImpl(@NotNull Object parentId,
@NotNull BuildIssue buildIssue,
@NotNull Kind kind,
@NotNull Function<Project, Navigatable> navigatableProvider) {
super(new Object(), parentId, System.currentTimeMillis(), buildIssue.getTitle());
myIssue = buildIssue;
myKind = kind;
myNavigatable = navigatableProvider;
}
@NotNull
@@ -64,7 +53,7 @@ public class BuildIssueEventImpl extends AbstractBuildEvent implements BuildIssu
@Nullable
@Override
public Navigatable getNavigatable(@NotNull Project project) {
return myNavigatable.apply(project);
return myIssue.getNavigatable(project);
}
@Override
@@ -5,6 +5,8 @@ import com.intellij.build.BuildConsoleUtils.getMessageTitle
import com.intellij.build.issue.BuildIssue
import com.intellij.build.issue.BuildIssueQuickFix
import com.intellij.build.issue.quickfix.OpenFileQuickFix
import com.intellij.openapi.project.Project
import com.intellij.pom.Navigatable
import com.intellij.util.PlatformUtils
import com.intellij.util.io.isFile
import org.gradle.initialization.BuildLayoutParameters
@@ -78,6 +80,7 @@ class GradleDaemonStartupIssueChecker : GradleIssueChecker {
override val title: String = title
override val description: String = description
override val quickFixes = quickFixes
override fun getNavigatable(project: Project): Navigatable? = null
}
}
}
@@ -5,6 +5,8 @@ import com.intellij.build.BuildConsoleUtils.getMessageTitle
import com.intellij.build.issue.BuildIssue
import com.intellij.build.issue.BuildIssueQuickFix
import com.intellij.openapi.application.ApplicationNamesInfo
import com.intellij.openapi.project.Project
import com.intellij.pom.Navigatable
import com.intellij.util.PlatformUtils.getPlatformPrefix
import com.intellij.util.lang.JavaVersion
import org.gradle.util.GradleVersion
@@ -125,6 +127,7 @@ class IncompatibleGradleJdkIssueChecker : GradleIssueChecker {
override val title: String = title
override val description: String = description
override val quickFixes = quickFixes
override fun getNavigatable(project: Project): Navigatable? = null
}
}
@@ -7,6 +7,7 @@ import com.intellij.execution.runners.ExecutionUtil
import com.intellij.openapi.actionSystem.DataProvider
import com.intellij.openapi.actionSystem.LangDataKeys
import com.intellij.openapi.project.Project
import com.intellij.pom.Navigatable
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.plugins.gradle.issue.quickfix.ReimportQuickFix.Companion.requestImport
import org.jetbrains.plugins.gradle.settings.GradleSettings
@@ -15,6 +16,7 @@ import java.util.concurrent.CompletableFuture
@ApiStatus.Internal
abstract class UnresolvedDependencyIssue(dependencyName: String) : BuildIssue {
override val title: String = "Could not resolve $dependencyName"
override fun getNavigatable(project: Project): Navigatable? = null
fun buildDescription(failureMessage: String?, isOfflineMode: Boolean, offlineModeQuickFixText: String): String {
val issueDescription = StringBuilder(failureMessage?.trim())
@@ -4,6 +4,8 @@ package org.jetbrains.plugins.gradle.issue
import com.intellij.build.BuildConsoleUtils.getMessageTitle
import com.intellij.build.issue.BuildIssue
import com.intellij.build.issue.BuildIssueQuickFix
import com.intellij.openapi.project.Project
import com.intellij.pom.Navigatable
import org.gradle.util.GradleVersion
import org.jetbrains.annotations.ApiStatus
import org.jetbrains.plugins.gradle.issue.quickfix.GradleVersionQuickFix
@@ -84,6 +86,7 @@ class UnsupportedGradleVersionIssueChecker : GradleIssueChecker {
override val title: String = title
override val description: String = description
override val quickFixes = quickFixes
override fun getNavigatable(project: Project): Navigatable? = null
}
}
}
@@ -17,6 +17,7 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.pom.Navigatable
import org.jetbrains.idea.maven.buildtool.quickfix.OpenMavenSettingsQuickFix
import org.jetbrains.idea.maven.buildtool.quickfix.UseBundledMavenQuickFix
import org.jetbrains.idea.maven.execution.SyncBundle
@@ -215,6 +216,7 @@ class MavenSyncConsole(private val myProject: Project) {
"- <a href=\"${UseBundledMavenQuickFix.ID}\">Use Bundled</a>\n"
override val quickFixes: List<BuildIssueQuickFix> = listOf(OpenMavenSettingsQuickFix(), UseBundledMavenQuickFix())
override fun getNavigatable(project: Project): Navigatable? = null
}, kind))
}