### Eclipse Workspace Patch 1.0 #P org.eclipse.mylyn.tasks.core Index: plugin.xml =================================================================== RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.core/plugin.xml,v retrieving revision 1.29 diff -u -r1.29 plugin.xml --- plugin.xml 1 Mar 2011 09:08:47 -0000 1.29 +++ plugin.xml 21 Jun 2011 10:04:58 -0000 @@ -13,6 +13,7 @@ + + + + + + + + This extension point can be used to register a task activation listener. The listener class must implement the interface org.eclipse.mylyn.tasks.core.ITaskActivationListener + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Since Mylyn Tasks 3.7 + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + Index: src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java =================================================================== RCS file: /cvsroot/mylyn/org.eclipse.mylyn.tasks/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java,v retrieving revision 1.79 diff -u -r1.79 TaskActivityManager.java --- src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java 15 Apr 2011 09:10:26 -0000 1.79 +++ src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java 21 Jun 2011 10:05:02 -0000 @@ -26,7 +26,11 @@ import java.util.concurrent.CopyOnWriteArraySet; import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.mylyn.commons.core.StatusHandler; import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta.Kind; @@ -91,9 +95,31 @@ this.taskList = taskList; this.repositoryManager = repositoryManager; this.taskList.addChangeListener(TASKLIST_CHANGE_LISTENER); + initTaskListeners(); clear(); } + private void initTaskListeners() { + try { + IExtensionRegistry registry = Platform.getExtensionRegistry(); + IConfigurationElement[] config = registry.getConfigurationElementsFor(ITasksCoreConstants.ID_PLUGIN + + ".taskActivationListeners"); //$NON-NLS-1$ + if (config.length > 0) { + Object object; + object = config[0].createExecutableExtension("listenerClass");//$NON-NLS-1$ + if (object instanceof ITaskActivationListener) { + addActivationListener((ITaskActivationListener) object); + } else { + StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, + "Registering of task activation listener failed: \"" + object + "\"")); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + } catch (CoreException e) { + StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, + "Registering of task activation listener failed: \"" + e.getMessage() + "\"")); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + /** * Get the user specified first day of the week (Calendar.SUNDAY | Calendar.MONDAY) *