mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-239815 Help | What's new action opens editor
GitOrigin-RevId: 4d83b8574c3c3fd568a739f2092cd9b9a1dc7b16
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d1d4830e30
commit
d8be2e428e
@@ -7,13 +7,19 @@ import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.application.ex.ApplicationInfoEx;
|
||||
import com.intellij.openapi.fileEditor.impl.HTMLEditorProvider;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class WhatsNewAction extends AnAction implements DumbAware {
|
||||
@Override
|
||||
public void actionPerformed(@NotNull AnActionEvent e) {
|
||||
BrowserUtil.browse(ApplicationInfoEx.getInstanceEx().getWhatsNewUrl());
|
||||
String text = e.getPresentation().getText();
|
||||
if (e.getProject() == null || text == null) {
|
||||
BrowserUtil.browse(ApplicationInfoEx.getInstanceEx().getWhatsNewUrl());
|
||||
} else {
|
||||
HTMLEditorProvider.Companion.openEditor(e.getProject(), ApplicationInfoEx.getInstanceEx().getWhatsNewUrl(), text);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package com.intellij.openapi.fileEditor.impl
|
||||
|
||||
import com.intellij.openapi.fileEditor.FileEditor
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager
|
||||
import com.intellij.openapi.fileEditor.FileEditorPolicy
|
||||
import com.intellij.openapi.fileEditor.FileEditorProvider
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
@@ -9,6 +10,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Key
|
||||
import com.intellij.openapi.util.KeyWithDefaultValue
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.testFramework.LightVirtualFile
|
||||
|
||||
class HTMLEditorProvider : FileEditorProvider, DumbAware {
|
||||
override fun createEditor(project: Project, file: VirtualFile): FileEditor = HTMLFileEditor()
|
||||
@@ -21,5 +23,14 @@ class HTMLEditorProvider : FileEditorProvider, DumbAware {
|
||||
|
||||
companion object {
|
||||
val HTML_CONTENT_TYPE: Key<Boolean> = KeyWithDefaultValue.create("HTML_CONTENT_TYPE", false)
|
||||
|
||||
fun openEditor(project: Project, url: String, title: String) {
|
||||
val file = LightVirtualFile(title)
|
||||
file.putUserData(HTML_CONTENT_TYPE, true)
|
||||
val fileEditors = FileEditorManager.getInstance(project).openFile(file, true)
|
||||
if (fileEditors.isNotEmpty() && fileEditors[0] is HTMLFileEditor) {
|
||||
(fileEditors[0] as HTMLFileEditor).url = url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-11
@@ -13,10 +13,7 @@ import com.intellij.openapi.application.*;
|
||||
import com.intellij.openapi.application.ex.ApplicationEx;
|
||||
import com.intellij.openapi.application.impl.ApplicationImpl;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileEditor.impl.HTMLEditorProvider;
|
||||
import com.intellij.openapi.fileEditor.impl.HTMLFileEditor;
|
||||
import com.intellij.openapi.progress.PerformInBackgroundOption;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
@@ -27,7 +24,6 @@ import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.ui.JBColor;
|
||||
import com.intellij.ui.LicensingFacade;
|
||||
import com.intellij.util.SystemProperties;
|
||||
@@ -102,13 +98,8 @@ final class UpdateInfoDialog extends AbstractUpdateDialog {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String title = IdeBundle.message("update.whats.new.file.name", ApplicationInfo.getInstance().getFullVersion());
|
||||
LightVirtualFile file = new LightVirtualFile(title, myNewBuild.getMessage());
|
||||
file.putUserData(HTMLEditorProvider.Companion.getHTML_CONTENT_TYPE(), true);
|
||||
FileEditor[] fileEditors = FileEditorManager.getInstance(project).openFile(file, true);
|
||||
if (fileEditors.length > 0 && fileEditors[0] instanceof HTMLFileEditor) {
|
||||
((HTMLFileEditor)fileEditors[0])
|
||||
.setUrl(myNewBuild.getBlogPost() + "/?var=embed" + (UIUtil.isUnderDarcula() ? "&theme=dark" : ""));
|
||||
}
|
||||
HTMLEditorProvider.Companion
|
||||
.openEditor(project, myNewBuild.getBlogPost() + "/?var=embed" + (UIUtil.isUnderDarcula() ? "&theme=dark" : ""), title);
|
||||
close(OK_EXIT_CODE);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user