mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
dumb-aware EditorNotifications.Provider (EA-66174)
This commit is contained in:
+2
-1
@@ -22,6 +22,7 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
@@ -38,7 +39,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
/**
|
||||
* @author Danila Ponomarenko
|
||||
*/
|
||||
public class SetupSDKNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class SetupSDKNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("Setup SDK");
|
||||
|
||||
private final Project myProject;
|
||||
|
||||
+2
-1
@@ -16,6 +16,7 @@
|
||||
package com.intellij.ide;
|
||||
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.EditorNotificationPanel;
|
||||
@@ -26,7 +27,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
public class GeneratedFileEditingNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class GeneratedFileEditingNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("generated.source.file.editing.notification.panel");
|
||||
private final GeneratedSourceFileChangeTracker myChangeTracker;
|
||||
|
||||
|
||||
+2
-1
@@ -21,6 +21,7 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileEditor.TextEditor;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
@@ -40,7 +41,7 @@ import static com.intellij.psi.codeStyle.EditorNotificationInfo.ActionLabelData;
|
||||
/**
|
||||
* @author Rustam Vishnyakov
|
||||
*/
|
||||
public class DetectedIndentOptionsNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class DetectedIndentOptionsNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("indent.options.notification.provider");
|
||||
private static final Key<Boolean> NOTIFIED_FLAG = Key.create("indent.options.notification.provider.status");
|
||||
protected static final Key<Boolean> DETECT_INDENT_NOTIFICATION_SHOWN_KEY = Key.create("indent.options.notification.provider.status.test.notification.shown");
|
||||
|
||||
@@ -31,6 +31,12 @@ import javax.swing.*;
|
||||
*/
|
||||
public abstract class EditorNotifications extends AbstractProjectComponent {
|
||||
|
||||
/**
|
||||
* An extension allowing to add custom notifications to the top of file editors.
|
||||
*
|
||||
* During indexing, only {@link com.intellij.openapi.project.DumbAware} instances are executed.
|
||||
* @param <T> the type of the notification UI component
|
||||
*/
|
||||
public abstract static class Provider<T extends JComponent> {
|
||||
@NotNull
|
||||
public abstract Key<T> getKey();
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.diagnostic.LogUtil;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.io.FileAttributes;
|
||||
@@ -39,7 +40,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class FileChangedNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class FileChangedNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Logger LOG = Logger.getInstance(FileChangedNotificationProvider.class);
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("file.changed.notification.panel");
|
||||
|
||||
|
||||
+2
-1
@@ -20,6 +20,7 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorBundle;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.TextEditor;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -28,7 +29,7 @@ import com.intellij.ui.EditorNotifications;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ForcedSoftWrapsNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class ForcedSoftWrapsNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("forced.soft.wraps.notification.panel");
|
||||
private static final String DISABLED_NOTIFICATION_KEY = "disable.forced.soft.wraps.notification";
|
||||
|
||||
|
||||
+2
-1
@@ -20,6 +20,7 @@ import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileTypes.FileTypeFactory;
|
||||
import com.intellij.openapi.fileTypes.PlainTextFileType;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -36,7 +37,7 @@ import java.util.Set;
|
||||
* User: anna
|
||||
* Date: 10/11/13
|
||||
*/
|
||||
public class PluginAdvertiserEditorNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class PluginAdvertiserEditorNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("file.type.associations.detected");
|
||||
private final Project myProject;
|
||||
private final EditorNotifications myNotifications;
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.intellij.ui;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerAdapter;
|
||||
@@ -132,9 +131,12 @@ public class EditorNotificationsImpl extends EditorNotifications {
|
||||
public void computeInReadAction(@NotNull final ProgressIndicator indicator) {
|
||||
if (isOutdated()) return;
|
||||
|
||||
final List<Provider> providers = DumbService.getInstance(myProject).
|
||||
filterByDumbAwareness(EXTENSION_POINT_NAME.getExtensions(myProject));
|
||||
|
||||
final List<Runnable> updates = ContainerUtil.newArrayList();
|
||||
for (final FileEditor editor : editors) {
|
||||
for (final Provider<?> provider : Extensions.getExtensions(EXTENSION_POINT_NAME, myProject)) {
|
||||
for (final Provider<?> provider : providers) {
|
||||
final JComponent component = provider.createNotificationPanel(file, editor);
|
||||
updates.add(new Runnable() {
|
||||
@Override
|
||||
|
||||
+3
-1
@@ -16,6 +16,7 @@
|
||||
package com.intellij.openapi.vcs.changes.conflicts;
|
||||
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vcs.changes.ChangeListManagerImpl;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -25,7 +26,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
*/
|
||||
public class ChangelistConflictNotificationProvider extends EditorNotifications.Provider<ChangelistConflictNotificationPanel> {
|
||||
public class ChangelistConflictNotificationProvider extends EditorNotifications.Provider<ChangelistConflictNotificationPanel> implements
|
||||
DumbAware {
|
||||
|
||||
private static final Key<ChangelistConflictNotificationPanel> KEY = Key.create("changelistConflicts");
|
||||
|
||||
|
||||
+2
-1
@@ -3,6 +3,7 @@ package org.editorconfig.plugincomponents;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.TextEditor;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -23,7 +24,7 @@ import java.util.List;
|
||||
/**
|
||||
* @author Dennis.Ushakov
|
||||
*/
|
||||
public class EditorConfigNotifierProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class EditorConfigNotifierProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements DumbAware {
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("editor.config.notification.panel");
|
||||
private static final String EDITOR_CONFIG_ACCEPTED = "editor.config.accepted";
|
||||
|
||||
|
||||
+3
-1
@@ -24,6 +24,7 @@ import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ModuleRootAdapter;
|
||||
@@ -56,7 +57,8 @@ import java.util.regex.Pattern;
|
||||
* @author Vladislav.Soroka
|
||||
* @since 9/13/13
|
||||
*/
|
||||
public class UseDistributionWithSourcesNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> {
|
||||
public class UseDistributionWithSourcesNotificationProvider extends EditorNotifications.Provider<EditorNotificationPanel> implements
|
||||
DumbAware {
|
||||
public static final Pattern GRADLE_SRC_DISTRIBUTION_PATTERN;
|
||||
private static final Logger LOG = Logger.getInstance("#" + UseDistributionWithSourcesNotificationProvider.class.getName());
|
||||
private static final Key<EditorNotificationPanel> KEY = Key.create("gradle.notifications.use.distribution.with.sources");
|
||||
|
||||
Reference in New Issue
Block a user