mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
UnknownSdk - yet another (proper) fix for IDEA-232821, IDEA-238147 (WIP) - fix presentation
GitOrigin-RevId: 4449c902e7c7681ad2c32fcccde9adbd9b2559cc
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2ca5ad7ab6
commit
19aefdb5f8
+11
-4
@@ -11,16 +11,16 @@ import com.intellij.openapi.fileEditor.FileEditorManagerListener;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.projectRoots.SdkType;
|
||||
import com.intellij.openapi.roots.ui.configuration.SdkListPresenter;
|
||||
import com.intellij.openapi.roots.ui.configuration.UnknownSdk;
|
||||
import com.intellij.openapi.roots.ui.configuration.UnknownSdkDownloadableSdkFix;
|
||||
import com.intellij.openapi.roots.ui.configuration.UnknownSdkLocalSdkFix;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.EditorNotificationPanel;
|
||||
import com.intellij.ui.EditorNotifications;
|
||||
import com.intellij.ui.HyperlinkLabel;
|
||||
import com.intellij.util.SmartList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -259,7 +259,13 @@ public class UnknownSdkEditorNotification {
|
||||
|
||||
String intentionActionText = ProjectBundle.message("config.invalid.sdk.configure.missing", sdkTypeName, mySdkName);
|
||||
|
||||
String localText = localFix != null ? intentionActionText = ProjectBundle.message("config.unknown.sdk.local", StringUtil.trimMiddle(FileUtil.getLocationRelativeToUserHome(localFix.getExistingSdkHome()), 30)) : "";
|
||||
String localText = "";
|
||||
String localTextTooltip = "";
|
||||
if (localFix != null) {
|
||||
localText = intentionActionText = ProjectBundle.message("config.unknown.sdk.local", sdkTypeName, localFix.getPresentableVersionString());
|
||||
localTextTooltip = SdkListPresenter.presentDetectedSdkPath(localFix.getExistingSdkHome(), 90, 40);
|
||||
}
|
||||
|
||||
String downloadText = downloadFix != null ? intentionActionText = ProjectBundle.message("config.unknown.sdk.download", downloadFix.getDownloadDescription()) : "";
|
||||
EditorNotificationPanel notification = newNotificationPanel(intentionActionText);
|
||||
|
||||
@@ -268,9 +274,10 @@ public class UnknownSdkEditorNotification {
|
||||
notification.setText(notificationText);
|
||||
|
||||
if (localFix != null) {
|
||||
notification.createActionLabel(localText, () -> {
|
||||
HyperlinkLabel actionLabel = notification.createActionLabel(localText, () -> {
|
||||
mySdk.applyLocalFix(project);
|
||||
}, true);
|
||||
actionLabel.setToolTipText(localTextTooltip);
|
||||
}
|
||||
else if (downloadFix != null) {
|
||||
notification.createActionLabel(downloadText, () -> {
|
||||
|
||||
+6
-1
@@ -225,11 +225,16 @@ public final class SdkListPresenter extends ColoredListCellRenderer<SdkListItem>
|
||||
|
||||
@NotNull
|
||||
public static String presentDetectedSdkPath(@NotNull String home) {
|
||||
return presentDetectedSdkPath(home, 50, 30);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String presentDetectedSdkPath(@NotNull String home, int maxLength, int suffixLength) {
|
||||
//for macOS, let's try removing Bundle internals
|
||||
home = StringUtil.trimEnd(home, "/Contents/Home"); //NON-NLS
|
||||
home = StringUtil.trimEnd(home, "/Contents/MacOS"); //NON-NLS
|
||||
home = FileUtil.getLocationRelativeToUserHome(home);
|
||||
home = StringUtil.shortenTextWithEllipsis(home, 50, 30);
|
||||
home = StringUtil.shortenTextWithEllipsis(home, maxLength, suffixLength);
|
||||
return home;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ config.invalid.sdk.notification.text={0} "{1}" is broken or configured incorrect
|
||||
config.unknown.sdk.configure=Configure...
|
||||
config.invalid.sdk.configure=Configure...
|
||||
config.unknown.sdk.download=Download {0}
|
||||
config.unknown.sdk.local=Use {0}
|
||||
config.unknown.sdk.local=Use existing {0} {1}
|
||||
config.unknown.sdk.configure.missing=Configure missing {0} "{1}"
|
||||
config.invalid.sdk.configure.missing=Configure broken {0} "{1}"
|
||||
config.unknown.sdk.configuration=SDK configuration
|
||||
|
||||
Reference in New Issue
Block a user