Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 214195 | Differences between
and this patch

Collapse All | Expand All

(-)META-INF/MANIFEST.MF (+1 lines)
Lines 22-27 Link Here
22
 org.eclipse.jdt.launching,
22
 org.eclipse.jdt.launching,
23
 org.eclipse.jdt.junit,
23
 org.eclipse.jdt.junit,
24
 org.eclipse.mylyn.tasks.core,
24
 org.eclipse.mylyn.tasks.core,
25
 org.eclipse.mylyn.tasks.ui,
25
 org.eclipse.mylyn.context.ui,
26
 org.eclipse.mylyn.context.ui,
26
 org.eclipse.mylyn.ide.ui,
27
 org.eclipse.mylyn.ide.ui,
27
 org.eclipse.mylyn.java.ui,
28
 org.eclipse.mylyn.java.ui,
(-)plugin.xml (-2 / +10 lines)
Lines 57-62 Link Here
57
               mode="run">
57
               mode="run">
58
         </launchMode>
58
         </launchMode>
59
      </launchConfigurationTabGroup>
59
      </launchConfigurationTabGroup>
60
    </extension>	
60
  </extension>
61
    
62
  <extension point="org.eclipse.mylyn.tasks.ui.projectLinkProviders">
63
    <linkProvider
64
          id="org.eclipse.mylyn.pde.ui.eclipsePluginRepositoryLinkProvider"
65
          class="org.eclipse.mylyn.internal.pde.ui.EclipsePluginTaskRepositoryLinkProvider"
66
          name="Eclipse.org Plugin Link"
67
          order="1010"/>
68
  </extension>	
61
69
62
</plugin>
70
</plugin>
(-)src/org/eclipse/mylyn/internal/pde/ui/EclipsePluginTaskRepositoryLinkProvider.java (+64 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Mylyn project committers and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/
8
9
package org.eclipse.mylyn.internal.pde.ui;
10
11
import org.eclipse.core.resources.IProject;
12
import org.eclipse.core.resources.IResource;
13
import org.eclipse.mylyn.tasks.core.TaskRepository;
14
import org.eclipse.mylyn.tasks.core.TaskRepositoryManager;
15
import org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider;
16
import org.eclipse.pde.core.IModel;
17
import org.eclipse.pde.core.plugin.IPluginModelBase;
18
import org.eclipse.pde.core.plugin.PluginRegistry;
19
import org.eclipse.pde.internal.core.PDECore;
20
import org.eclipse.pde.internal.core.ifeature.IFeatureModel;
21
import org.eclipse.pde.internal.core.natures.PDE;
22
23
/**
24
 * Task repository link provider for Eclipse.org PDE projects
25
 * 
26
 * @author Eugene Kuleshov
27
 * 
28
 * TODO could use extension point to declare mapping for 3rd party plugin providers
29
 */
30
public class EclipsePluginTaskRepositoryLinkProvider extends AbstractTaskRepositoryLinkProvider {
31
32
	public TaskRepository getTaskRepository(IResource resource, TaskRepositoryManager repositoryManager) {
33
		IProject project = resource.getProject();
34
		if (PDE.hasPluginNature(project)) {
35
			IPluginModelBase pluginModel = PluginRegistry.findModel(project);
36
			if (pluginModel != null) {
37
				String providerName = pluginModel.getPluginBase().getProviderName();
38
				return getTaskRepository(providerName, pluginModel, repositoryManager);
39
			}
40
		} else if (PDE.hasFeatureNature(project)) {
41
			IFeatureModel featureModel = PDECore.getDefault().getFeatureModelManager().getFeatureModel(project);
42
			if (featureModel != null) {
43
				String providerName = featureModel.getFeature().getProviderName();
44
				return getTaskRepository(providerName, featureModel, repositoryManager);
45
			}
46
		} else if (PDE.hasUpdateSiteNature(project)) {
47
			// TODO could use referenced features to lookup task repository
48
		}
49
50
		// ignore
51
		return null;
52
	}
53
54
	private TaskRepository getTaskRepository(String providerName, IModel model, TaskRepositoryManager repositoryManager) {
55
		if (providerName.startsWith("%")) {
56
			providerName = model.getResourceString(providerName);
57
		}
58
		if ("Eclipse.org".equals(providerName)) {
59
			return repositoryManager.getRepository("https://bugs.eclipse.org/bugs");
60
		}
61
		return null;
62
	}
63
64
}

Return to bug 214195