diff options
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java | 22 | ||||
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java | 1 |
2 files changed, 19 insertions, 4 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java index 6023528ae..f16c917db 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java @@ -101,11 +101,11 @@ public class TasksUiExtensionReader { public static final String ELMNT_HYPERLINK_DETECTOR = "hyperlinkDetector"; - private static boolean extensionsRead = false; + private static boolean coreExtensionsRead = false; public static void initExtensions(TaskListWriter writer) { List<ITaskListExternalizer> externalizers = new ArrayList<ITaskListExternalizer>(); - if (!extensionsRead) { + if (!coreExtensionsRead) { IExtensionRegistry registry = Platform.getExtensionRegistry(); // HACK: has to be read first @@ -159,10 +159,25 @@ public class TasksUiExtensionReader { } } writer.setDelegateExternalizers(externalizers); - extensionsRead = true; + coreExtensionsRead = true; } } + public static void initWorkbenchUiExtensions() { + IExtensionRegistry registry = Platform.getExtensionRegistry(); + + IExtensionPoint repositoriesExtensionPoint = registry.getExtensionPoint(EXTENSION_REPOSITORIES); + IExtension[] repositoryExtensions = repositoriesExtensionPoint.getExtensions(); + for (int i = 0; i < repositoryExtensions.length; i++) { + IConfigurationElement[] elements = repositoryExtensions[i].getConfigurationElements(); + for (int j = 0; j < elements.length; j++) { + if (elements[j].getName().equals(ELMNT_REPOSITORY_UI)) { + readRepositoryConnectorUi(elements[j]); + } + } + } + } + private static void readHyperlinkDetector(IConfigurationElement element) { try { Object hyperlinkDetector = element.createExecutableExtension(ATTR_CLASS); @@ -208,7 +223,6 @@ public class TasksUiExtensionReader { private static void readRepositoryConnectorUi(IConfigurationElement element) { try { -// Object type = element.getAttribute(ELMNT_TYPE); Object connectorUi = element.createExecutableExtension(ATTR_CLASS); if (connectorUi instanceof AbstractRepositoryConnectorUi) { TasksUiPlugin.addRepositoryConnectorUi((AbstractRepositoryConnectorUi) connectorUi); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java index a2d9c4638..66c70e158 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java @@ -407,6 +407,7 @@ public class TasksUiPlugin extends AbstractUIPlugin implements IStartup { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { try { + TasksUiExtensionReader.initWorkbenchUiExtensions(); PlatformUI.getWorkbench().addWindowListener(WINDOW_LISTENER); // Needs to happen asynchronously to avoid bug 159706 |