diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateListPanel.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateListPanel.java index 9a7a724e2d5d..1c0b72a5a454 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateListPanel.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateListPanel.java @@ -19,6 +19,7 @@ package com.intellij.codeInsight.template.impl; import com.intellij.application.options.ExportSchemeAction; import com.intellij.application.options.SchemesToImportPopup; import com.intellij.codeInsight.CodeInsightBundle; +import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; import com.intellij.ide.dnd.*; import com.intellij.ide.dnd.aware.DnDAwareTree; @@ -690,6 +691,17 @@ public class TemplateListPanel extends JPanel implements Disposable { public void updateButton(AnActionEvent e) { e.getPresentation().setEnabled(getTemplate(getSingleSelectedIndex()) != null); } + }).addExtraAction(new AnActionButton("Restore deleted defaults", AllIcons.General.TodoDefault) { + @Override + public void actionPerformed(@NotNull AnActionEvent e) { + TemplateSettings.getInstance().reset(); + reset(); + } + + @Override + public boolean isEnabled() { + return super.isEnabled() && !TemplateSettings.getInstance().getDeletedTemplates().isEmpty(); + } }); if (getSchemesManager().isExportAvailable()) { decorator.addExtraAction(new AnActionButton("Share...", PlatformIcons.EXPORT_ICON) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java index 38a78243c464..cdefbe83a252 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java @@ -158,6 +158,10 @@ public class TemplateSettings implements PersistentStateComponent, Expo this.key = key; } + @Override + public String toString() { + return getKey()+"@" + getGroupName(); + } } private TemplateKey myLastSelectedTemplate; @@ -750,4 +754,9 @@ public class TemplateSettings implements PersistentStateComponent, Expo public List getDeletedTemplates() { return myDeletedTemplates; } + + public void reset() { + myDeletedTemplates.clear(); + loadDefaultLiveTemplates(); + } } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java index 683341f985a6..8a224c9bd092 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java @@ -176,12 +176,9 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec public Set getAllSplitters() { HashSet all = new LinkedHashSet(); - if (PreviewPanel.isAvailable()) { - initUI(); - EditorWindow window = myPreviewPanel.getWindow(); - if (window != null) { - all.add(window.getOwner()); - } + EditorWindow previewWindow = getPreviewWindow(); + if (previewWindow != null) { + all.add(previewWindow.getOwner()); } all.add(getMainSplitters()); Set dockContainers = myDockManager.getContainers(); @@ -262,6 +259,13 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec } } + @Nullable + private EditorWindow getPreviewWindow() { + if (!PreviewPanel.isAvailable()) return null; + initUI(); + return myPreviewPanel.getWindow(); + } + private static class MyBorder implements Border { @Override public void paintBorder(@NotNull Component c, @NotNull Graphics g, int x, int y, int width, int height) { @@ -643,8 +647,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec } if (wndToOpenIn == null || !wndToOpenIn.isFileOpen(file)) { - initUI(); - EditorWindow previewWindow = PreviewPanel.isAvailable() && myPreviewPanel != null ? myPreviewPanel.getWindow() : null; + EditorWindow previewWindow = getPreviewWindow(); if (previewWindow != null) { wndToOpenIn = previewWindow; }