diff options
author | Lakshminarayana Nekkanti | 2019-08-06 08:35:31 +0000 |
---|---|---|
committer | Lakshminarayana Nekkanti | 2019-08-06 16:37:20 +0000 |
commit | 6e643fe1579edcd7f13e2828367b98dc5ca77abe (patch) | |
tree | 53d3ece528eff15597414a023a3f5593a5bccd19 | |
parent | bae8912c8c38a3460d79760c031d2f169a19dd7d (diff) | |
download | eclipse.platform.text-6e643fe1579edcd7f13e2828367b98dc5ca77abe.tar.gz eclipse.platform.text-6e643fe1579edcd7f13e2828367b98dc5ca77abe.tar.xz eclipse.platform.text-6e643fe1579edcd7f13e2828367b98dc5ca77abe.zip |
Bug 549665 - [generic editor] Package Explorer should supportY20190808-0900I20190807-1800I20190806-1800
content-type specific icons for generic editor
Change-Id: Iaa9702e4503183981d64b2b4553b01178818ceb8
Signed-off-by: Lakshminarayana Nekkanti <narayana.nekkanti@gmail.com>
-rw-r--r-- | org.eclipse.ui.genericeditor/plugin.xml | 2 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextEditor.java | 1 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java | 2 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorWithContentTypeIcon.java (renamed from org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorDescriptor.java) | 9 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorWithIconAssociationOverride.java (renamed from org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorAssociationOverride.java) | 28 |
5 files changed, 28 insertions, 14 deletions
diff --git a/org.eclipse.ui.genericeditor/plugin.xml b/org.eclipse.ui.genericeditor/plugin.xml index 059fdff6473..9d01b2e0dad 100644 --- a/org.eclipse.ui.genericeditor/plugin.xml +++ b/org.eclipse.ui.genericeditor/plugin.xml @@ -227,7 +227,7 @@ <extension point="org.eclipse.ui.ide.editorAssociationOverride"> <editorAssociationOverride - class="org.eclipse.ui.internal.genericeditor.GenericEditorAssociationOverride" + class="org.eclipse.ui.internal.genericeditor.GenericEditorWithIconAssociationOverride" id="org.eclipse.ui.internal.genericeditor.GenericEditorAssociationOverride"/> </extension> </plugin> diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextEditor.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextEditor.java index d92078fd0fb..3de682896bb 100644 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextEditor.java +++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextEditor.java @@ -44,6 +44,7 @@ import org.eclipse.ui.texteditor.SourceViewerDecorationSupport; public class ExtensionBasedTextEditor extends TextEditor { private static final String CONTEXT_ID = "org.eclipse.ui.genericeditor.genericEditorContext"; //$NON-NLS-1$ + public static final String GENERIC_EDITOR_ID = "org.eclipse.ui.genericeditor.GenericEditor"; //$NON-NLS-1$ private static final String MATCHING_BRACKETS = GenericEditorPreferenceConstants.EDITOR_MATCHING_BRACKETS; private static final String MATCHING_BRACKETS_COLOR = GenericEditorPreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR; diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java index 027690dd961..c3a77d760c1 100644 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java +++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/ExtensionBasedTextViewerConfiguration.java @@ -233,7 +233,7 @@ public final class ExtensionBasedTextViewerConfiguration extends TextSourceViewe @Override protected Map<String, IAdaptable> getHyperlinkDetectorTargets(ISourceViewer sourceViewer) { Map<String, IAdaptable> targets = super.getHyperlinkDetectorTargets(sourceViewer); - targets.put("org.eclipse.ui.genericeditor.GenericEditor", editor); //$NON-NLS-1$ + targets.put(ExtensionBasedTextEditor.GENERIC_EDITOR_ID, editor); return targets; } } diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorDescriptor.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorWithContentTypeIcon.java index 39942aa495e..cdf7f5a0e20 100644 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorDescriptor.java +++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorWithContentTypeIcon.java @@ -20,11 +20,16 @@ import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IEditorMatchingStrategy; -public class GenericEditorDescriptor implements IEditorDescriptor { +/** + * Overrides the default generic editor icon with the content-type specific + * icons contributed using the extension point + * "org.eclipse.ui.genericeditor.icons". + */ +public class GenericEditorWithContentTypeIcon implements IEditorDescriptor { private IEditorDescriptor editorDescriptor; private String fileName; - public GenericEditorDescriptor(String fileName, IEditorDescriptor editorDescriptor) { + public GenericEditorWithContentTypeIcon(String fileName, IEditorDescriptor editorDescriptor) { Assert.isNotNull(editorDescriptor); this.fileName = fileName; this.editorDescriptor = editorDescriptor; diff --git a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorAssociationOverride.java b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorWithIconAssociationOverride.java index ab275f14da4..4a3d7ccc017 100644 --- a/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorAssociationOverride.java +++ b/org.eclipse.ui.genericeditor/src/org/eclipse/ui/internal/genericeditor/GenericEditorWithIconAssociationOverride.java @@ -21,28 +21,36 @@ import org.eclipse.ui.IEditorDescriptor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.ide.IEditorAssociationOverride; -public class GenericEditorAssociationOverride implements IEditorAssociationOverride { +/** + * Overrides all the default generic editor icon with the content-type specific + * icons contributed using the extension point + * "org.eclipse.ui.genericeditor.icons".Content provides uses the overridden + * icons to show in Project Explorer + */ +public class GenericEditorWithIconAssociationOverride implements IEditorAssociationOverride { private Map<String, IEditorDescriptor> descriptorMap = new HashMap<String, IEditorDescriptor>(); @Override public IEditorDescriptor[] overrideEditors(IEditorInput editorInput, IContentType contentType, IEditorDescriptor[] editorDescriptors) { - return overrideEditors(editorInput.getName(), contentType, editorDescriptors); + return editorInput != null ? overrideEditors(editorInput.getName(), contentType, editorDescriptors) + : editorDescriptors; } @Override public IEditorDescriptor[] overrideEditors(String fileName, IContentType contentType, IEditorDescriptor[] editorDescriptors) { - return Arrays.stream(editorDescriptors).map(descripter -> { - return getEditorDescriptorForFile(descripter, fileName); + return Arrays.stream(editorDescriptors).map(descriptor -> { + return getEditorDescriptorForFile(descriptor, fileName); }).toArray(size -> new IEditorDescriptor[size]); } @Override public IEditorDescriptor overrideDefaultEditor(IEditorInput editorInput, IContentType contentType, IEditorDescriptor editorDescriptor) { - return overrideDefaultEditor(editorInput.getName(), contentType, editorDescriptor); + return editorInput != null ? overrideDefaultEditor(editorInput.getName(), contentType, editorDescriptor) + : editorDescriptor; } @Override @@ -51,14 +59,14 @@ public class GenericEditorAssociationOverride implements IEditorAssociationOverr return getEditorDescriptorForFile(editorDescriptor, fileName); } - private IEditorDescriptor getEditorDescriptorForFile(IEditorDescriptor defaultDescripter, String fileName) { - if (defaultDescripter != null - && "org.eclipse.ui.genericeditor.GenericEditor".equals(defaultDescripter.getId())) { //$NON-NLS-1$ + private IEditorDescriptor getEditorDescriptorForFile(IEditorDescriptor defaultDescriptor, String fileName) { + if (defaultDescriptor != null && ExtensionBasedTextEditor.GENERIC_EDITOR_ID.equals(defaultDescriptor.getId()) + && fileName != null && !fileName.isEmpty()) { if (!descriptorMap.containsKey(fileName)) { - descriptorMap.put(fileName, new GenericEditorDescriptor(fileName, defaultDescripter)); + descriptorMap.put(fileName, new GenericEditorWithContentTypeIcon(fileName, defaultDescriptor)); } return descriptorMap.get(fileName); } - return defaultDescripter; + return defaultDescriptor; } } |