diff options
author | Jaxsun McCarthy Huggan | 2015-12-18 19:09:42 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2016-01-22 19:13:24 +0000 |
commit | e5647f87f2d289148a4e5aa13ecb67d8f7546301 (patch) | |
tree | 2632c12703f5f8d28ba1d7344049f058b0d6bc34 | |
parent | 85b14d73a4da164a9bd9bf6cf65c692c9d395fe1 (diff) | |
download | org.eclipse.mylyn.tasks-e5647f87f2d289148a4e5aa13ecb67d8f7546301.tar.gz org.eclipse.mylyn.tasks-e5647f87f2d289148a4e5aa13ecb67d8f7546301.tar.xz org.eclipse.mylyn.tasks-e5647f87f2d289148a4e5aa13ecb67d8f7546301.zip |
486309: allow connectors to specify that their markup language extends a
"base-markup" when determining what rich text editor to show
https://bugs.eclipse.org/bugs/show_bug.cgi?id=486309
Change-Id: I39b5a14e034fb8c84143fbe333c6946e1f78544c
Signed-off-by: Jaxsun McCarthy Huggan <jaxsun.mccarthy@tasktop.com>
2 files changed, 22 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorExtensionsTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorExtensionsTest.java index f13647428..c8c1d0274 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorExtensionsTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/ui/editor/TaskEditorExtensionsTest.java @@ -92,4 +92,20 @@ public class TaskEditorExtensionsTest extends TestCase { assertNull(extension); } + public void testBaseMarkupAssociation() { + TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION); + TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION); + attribute.getMetaData().setMediaType("text/plain; markup=SpecialMockWiki; base-markup=MockWiki"); + AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute); + assertTrue(extension instanceof MockWikiEditorExtension); + } + + public void testBaseMarkupAssociationNoMarkup() { + TaskEditorExtensions.setTaskEditorExtensionId(repository, ID_TEXTILE_EXTENSION); + TaskAttribute attribute = taskData.getRoot().createMappedAttribute(TaskAttribute.DESCRIPTION); + attribute.getMetaData().setMediaType("text/plain; base-markup=MockWiki"); + AbstractTaskEditorExtension extension = TaskEditorExtensions.getTaskEditorExtension(repository, attribute); + assertTrue(extension instanceof MockTextileEditorExtension); + } + } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java index 650730186..93fcd43dc 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorExtensions.java @@ -42,6 +42,8 @@ public class TaskEditorExtensions { private static final String MARKUP_KEY = "markup"; //$NON-NLS-1$ + private static final String BASE_MARKUP_KEY = "base-markup"; //$NON-NLS-1$ + private static Map<String, RegisteredTaskEditorExtension> extensionsById = new HashMap<String, RegisteredTaskEditorExtension>(); private static Map<String, String> associationByConnectorKind = new HashMap<String, String>(); @@ -126,9 +128,12 @@ public class TaskEditorExtensions { if (parameters.containsKey(MARKUP_KEY)) { Iterator<String> iter = parameters.get(MARKUP_KEY).iterator(); String markup = iter.next(); + Iterator<String> baseMarkupIterator = parameters.get(BASE_MARKUP_KEY).iterator(); + String baseMarkup = (baseMarkupIterator.hasNext() ? baseMarkupIterator.next() : ""); //$NON-NLS-1$ + SortedSet<RegisteredTaskEditorExtension> extensions = getTaskEditorExtensions(); for (RegisteredTaskEditorExtension extension : extensions) { - if (markup.equals(extension.getName())) { + if (markup.equals(extension.getName()) || baseMarkup.equals(extension.getName())) { return extension.getExtension(); } } |