diff options
author | Lakshminarayana Nekkanti | 2019-07-02 09:19:43 +0000 |
---|---|---|
committer | Mickael Istria | 2019-07-18 14:05:07 +0000 |
commit | 5dacb5c72fb91737feedb5f20ff741a078707c61 (patch) | |
tree | e7373d1ac7cc0c46e03ce39a36d8bb1cf29a69be /org.eclipse.ui.genericeditor.tests | |
parent | 47770c4052845dd93da22a50c254eece94b04c45 (diff) | |
download | eclipse.platform.text-5dacb5c72fb91737feedb5f20ff741a078707c61.tar.gz eclipse.platform.text-5dacb5c72fb91737feedb5f20ff741a078707c61.tar.xz eclipse.platform.text-5dacb5c72fb91737feedb5f20ff741a078707c61.zip |
Bug 513034 - [generic editor] Provide a way for generic editor to use
different icon based on content-type
Change-Id: I669c1a8df2918cdecea5e12d71059e34cb2f1c3f
Signed-off-by: Lakshminarayana Nekkanti <narayana.nekkanti@gmail.com>
Diffstat (limited to 'org.eclipse.ui.genericeditor.tests')
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/build.properties | 3 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/icons/newfile_wiz.png | bin | 0 -> 453 bytes | |||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/icons/newfolder_wiz.png | bin | 0 -> 527 bytes | |||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/plugin.xml | 12 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/GenericEditorTestSuite.java | 3 | ||||
-rw-r--r-- | org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/IconsTest.java | 105 |
6 files changed, 121 insertions, 2 deletions
diff --git a/org.eclipse.ui.genericeditor.tests/build.properties b/org.eclipse.ui.genericeditor.tests/build.properties index ed380ef0273..552c2424f7c 100644 --- a/org.eclipse.ui.genericeditor.tests/build.properties +++ b/org.eclipse.ui.genericeditor.tests/build.properties @@ -17,7 +17,8 @@ bin.includes = plugin.properties,\ about.html,\ .,\ META-INF/,\ - plugin.xml + plugin.xml,\ + icons/ src.includes = about.html diff --git a/org.eclipse.ui.genericeditor.tests/icons/newfile_wiz.png b/org.eclipse.ui.genericeditor.tests/icons/newfile_wiz.png Binary files differnew file mode 100644 index 00000000000..cb428d360f0 --- /dev/null +++ b/org.eclipse.ui.genericeditor.tests/icons/newfile_wiz.png diff --git a/org.eclipse.ui.genericeditor.tests/icons/newfolder_wiz.png b/org.eclipse.ui.genericeditor.tests/icons/newfolder_wiz.png Binary files differnew file mode 100644 index 00000000000..6fddda8953f --- /dev/null +++ b/org.eclipse.ui.genericeditor.tests/icons/newfolder_wiz.png diff --git a/org.eclipse.ui.genericeditor.tests/plugin.xml b/org.eclipse.ui.genericeditor.tests/plugin.xml index e107937b3a6..5d45eb65a30 100644 --- a/org.eclipse.ui.genericeditor.tests/plugin.xml +++ b/org.eclipse.ui.genericeditor.tests/plugin.xml @@ -263,4 +263,16 @@ type="org.eclipse.ui.internal.genericeditor.ExtensionBasedTextEditor"> </propertyTester> </extension> + <extension + point="org.eclipse.ui.genericeditor.icons"> + <icon + contentTypeId="org.eclipse.ui.genericeditor.tests.content-type" + icon="icons/newfile_wiz.png"/> + <icon + contentTypeId="org.eclipse.ui.genericeditor.tests.specialized-content-type" + icon="icons/newfolder_wiz.png"/> + <icon + contentTypeId="org.eclipse.ui.genericeditor.tests.sub-specialized-content-type" + icon="platform:/plugin/org.eclipse.ui.ide/icons/full/etool16/newprj_wiz.png"/> + </extension> </plugin> diff --git a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/GenericEditorTestSuite.java b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/GenericEditorTestSuite.java index 02581867800..366a17bd2cc 100644 --- a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/GenericEditorTestSuite.java +++ b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/GenericEditorTestSuite.java @@ -28,7 +28,8 @@ import org.junit.runners.Suite.SuiteClasses; FoldingTest.class, AutoEditTest.class, ReconcilerTest.class, - HighlightTest.class + HighlightTest.class, + IconsTest.class }) public class GenericEditorTestSuite { // see @SuiteClasses diff --git a/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/IconsTest.java b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/IconsTest.java new file mode 100644 index 00000000000..647ab781520 --- /dev/null +++ b/org.eclipse.ui.genericeditor.tests/src/org/eclipse/ui/genericeditor/tests/IconsTest.java @@ -0,0 +1,105 @@ +/******************************************************************************** + * Copyright (c) 2019 Lakshminarayana Nekkanti(narayana.nekkanti@gmail.com) + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 3 + * + * Contributor + * Lakshminarayana Nekkanti - initial API and implementation + ********************************************************************************/ +package org.eclipse.ui.genericeditor.tests; + +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayInputStream; +import java.lang.reflect.Field; + +import org.junit.Test; + +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.content.IContentType; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; + +import org.eclipse.jface.resource.ImageDescriptor; + +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.internal.genericeditor.ExtensionBasedTextEditor; +import org.eclipse.ui.internal.genericeditor.GenericEditorPlugin; +import org.eclipse.ui.part.FileEditorInput; +import org.eclipse.ui.tests.harness.util.UITestCase; + +public class IconsTest extends AbstratGenericEditorTest { + + private ExtensionBasedTextEditor genericEditor; + + private IFile testFile; + + private IProject testProject; + + @Test + public void testEditorIconParentSet() throws Exception { + testProject= ResourcesPlugin.getWorkspace().getRoot().getProject(getClass().getName() + System.currentTimeMillis()); + testProject.create(null); + testProject.open(null); + + testFile= testProject.getFile("foobar.txt"); + testFile.create(new ByteArrayInputStream("Testing file".getBytes()), true, null); + + genericEditor= (ExtensionBasedTextEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getActivePage().openEditor(new FileEditorInput(testFile), "org.eclipse.ui.genericeditor.GenericEditor"); + + Field field= genericEditor.getClass().getDeclaredField("contentTypeImageDescripter"); + field.setAccessible(true);// Workaround to access descriptor + + ImageDescriptor descriptor= GenericEditorPlugin.getDefault().getContentTypeImagesRegistry() + .getImageDescriptor(new IContentType[] { Platform.getContentTypeManager().getContentType("org.eclipse.ui.genericeditor.tests.content-type"), + }); + assertEquals(field.get(genericEditor), descriptor); + } + + @Test + public void testEditorIconChildSet() throws Exception { + testProject= ResourcesPlugin.getWorkspace().getRoot().getProject(getClass().getName() + System.currentTimeMillis()); + testProject.create(null); + testProject.open(null); + + testFile= testProject.getFile("foo.txt"); + testFile.create(new ByteArrayInputStream("Testing file".getBytes()), true, null); + + genericEditor= (ExtensionBasedTextEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow() + .getActivePage().openEditor(new FileEditorInput(testFile), "org.eclipse.ui.genericeditor.GenericEditor"); + + Field field= genericEditor.getClass().getDeclaredField("contentTypeImageDescripter"); + field.setAccessible(true);// Workaround to access descriptor + + ImageDescriptor descriptor= GenericEditorPlugin.getDefault().getContentTypeImagesRegistry() + .getImageDescriptor(new IContentType[] { Platform.getContentTypeManager().getContentType("org.eclipse.ui.genericeditor.tests.sub-specialized-content-type"), + }); + assertEquals(field.get(genericEditor), descriptor); + } + + @Override + public void tearDown() throws Exception { + if (genericEditor != null) { + genericEditor.close(false); + genericEditor= null; + UITestCase.processEvents(); + } + if (testFile != null) { + testFile.delete(true, new NullProgressMonitor()); + testFile= null; + } + if (testProject != null) { + testProject.delete(true, new NullProgressMonitor()); + testProject= null; + } + super.tearDown(); + } +} |