mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
UnknownSdkTracker - bugfix SDK actions
GitOrigin-RevId: 6b5bd48803efbf3262b7b66d6335837f7c6620e0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
af419f09be
commit
6fa51cca81
+2
-2
@@ -74,7 +74,7 @@ public class UnknownSdkEditorNotification implements Disposable {
|
||||
() -> {
|
||||
UnknownSdkTracker
|
||||
.getInstance(myProject)
|
||||
.showSdkSelectionPopup(sdkName, sdkType, parentJComponentOrSelf(panel), () -> removeNotification(panel));
|
||||
.showSdkSelectionPopup(sdkName, sdkType, parentJComponentOrSelf(panel), sdk -> removeNotification(panel));
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -108,7 +108,7 @@ public class UnknownSdkEditorNotification implements Disposable {
|
||||
panel.createActionLabel("Configure...", () -> {
|
||||
UnknownSdkTracker
|
||||
.getInstance(myProject)
|
||||
.showSdkSelectionPopup(null, parentJComponentOrSelf(panel), sdk -> {
|
||||
.showSdkSelectionPopup(null, null, parentJComponentOrSelf(panel), sdk -> {
|
||||
setSdk.accept(sdk);
|
||||
removeNotification(panel);
|
||||
});
|
||||
|
||||
+18
-27
@@ -178,28 +178,14 @@ public class UnknownSdkTracker {
|
||||
|
||||
SdkDownloadTracker downloadTracker = SdkDownloadTracker.getInstance();
|
||||
downloadTracker.registerSdkDownload(sdk, task);
|
||||
downloadTracker.tryRegisterDownloadingListener(sdk, lifetime, new ProgressIndicatorBase(), succeeded -> {
|
||||
if (succeeded) {
|
||||
registerNewSdkInJdkTable(info, sdk);
|
||||
}
|
||||
Disposer.dispose(lifetime);
|
||||
});
|
||||
|
||||
downloadTracker.tryRegisterDownloadingListener(sdk, lifetime, new ProgressIndicatorBase(), __ -> Disposer.dispose(lifetime));
|
||||
downloadTracker.startSdkDownloadIfNeeded(sdk);
|
||||
registerNewSdkInJdkTable(info, sdk);
|
||||
});
|
||||
}
|
||||
|
||||
public void showSdkSelectionPopup(@NotNull String sdkName,
|
||||
public void showSdkSelectionPopup(@Nullable String sdkName,
|
||||
@Nullable SdkType sdkType,
|
||||
@NotNull JComponent underneathRightOfComponent,
|
||||
@NotNull Runnable onSelectionMade) {
|
||||
showSdkSelectionPopup(sdkType, underneathRightOfComponent, sdk -> {
|
||||
registerNewSdkInJdkTable(sdkName, sdk);
|
||||
onSelectionMade.run();
|
||||
});
|
||||
}
|
||||
|
||||
public void showSdkSelectionPopup(@Nullable SdkType sdkType,
|
||||
@NotNull JComponent underneathRightOfComponent,
|
||||
@NotNull Consumer<? super Sdk> onSelectionMade) {
|
||||
ProjectSdksModel model = new ProjectSdksModel();
|
||||
@@ -219,9 +205,12 @@ public class UnknownSdkTracker {
|
||||
popup.createPopup(underneathRightOfComponent, new SdkPopup.SdkPopupListener() {
|
||||
private void handleNewItem(@NotNull SdkListItem item) {
|
||||
if (item instanceof SdkListItem.SdkItem) {
|
||||
onSelectionMade.consume(((SdkListItem.SdkItem)item).getSdk());
|
||||
Sdk sdk = ((SdkListItem.SdkItem)item).getSdk();
|
||||
registerNewSdkInJdkTable(sdkName, sdk);
|
||||
onSelectionMade.consume(sdk);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNewItemAdded(@NotNull SdkListItem item) {
|
||||
handleNewItem(item);
|
||||
@@ -285,18 +274,20 @@ public class UnknownSdkTracker {
|
||||
registerNewSdkInJdkTable(info.getSdkName(), sdk);
|
||||
}
|
||||
|
||||
private static void registerNewSdkInJdkTable(@NotNull String sdkName, @NotNull Sdk sdk) {
|
||||
private static void registerNewSdkInJdkTable(@Nullable String sdkName, @NotNull Sdk sdk) {
|
||||
WriteAction.run(() -> {
|
||||
ProjectJdkTable table = ProjectJdkTable.getInstance();
|
||||
Sdk clash = table.findJdk(sdkName);
|
||||
if (clash != null) {
|
||||
LOG.warn("SDK with name " + sdkName + " already exists: clash=" + clash + ", new=" + sdk);
|
||||
return;
|
||||
}
|
||||
if (sdkName != null) {
|
||||
Sdk clash = table.findJdk(sdkName);
|
||||
if (clash != null) {
|
||||
LOG.warn("SDK with name " + sdkName + " already exists: clash=" + clash + ", new=" + sdk);
|
||||
return;
|
||||
}
|
||||
|
||||
SdkModificator mod = sdk.getSdkModificator();
|
||||
mod.setName(sdkName);
|
||||
mod.commitChanges();
|
||||
SdkModificator mod = sdk.getSdkModificator();
|
||||
mod.setName(sdkName);
|
||||
mod.commitChanges();
|
||||
}
|
||||
|
||||
table.addJdk(sdk);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user