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 133692 | Differences between
and this patch

Collapse All | Expand All

(-)plugin.properties (+2 lines)
Lines 371-376 Link Here
371
371
372
OrganizeManifest.label= &Organize Manifests...
372
OrganizeManifest.label= &Organize Manifests...
373
373
374
OpenManifest.label= Open &Manifest
375
374
UpdateClasspathAction.label= &Update Classpath...
376
UpdateClasspathAction.label= &Update Classpath...
375
377
376
OpenDependenciesAction.label= Ope&n Dependencies
378
OpenDependenciesAction.label= Ope&n Dependencies
(-)plugin.xml (+8 lines)
Lines 1095-1100 Link Here
1095
               enablesFor="+"
1095
               enablesFor="+"
1096
               id="org.eclipse.pde.ui.OrganizeManifest"> 
1096
               id="org.eclipse.pde.ui.OrganizeManifest"> 
1097
         </action> 
1097
         </action> 
1098
         <!-- TODO No help for this yet helpContextId="org.eclipse.pde.doc.user.open_manifest" -->
1099
         <action
1100
               label="%OpenManifest.label"
1101
               class="org.eclipse.pde.internal.ui.util.OpenManifestAction"
1102
               menubarPath="org.eclipse.pde.ui.project.tools/group0"
1103
               enablesFor="+"
1104
               id="org.eclipse.pde.ui.OpenManifestAction"> 
1105
         </action> 
1098
         <action
1106
         <action
1099
               label="%MigrationAction.label"
1107
               label="%MigrationAction.label"
1100
               class="org.eclipse.pde.internal.ui.wizards.tools.MigrationAction"
1108
               class="org.eclipse.pde.internal.ui.wizards.tools.MigrationAction"
(-)src/org/eclipse/pde/internal/ui/pderesources.properties (+3 lines)
Lines 2396-2401 Link Here
2396
OrganizeRequireBundleResolution_Label=Organize required bundles
2396
OrganizeRequireBundleResolution_Label=Organize required bundles
2397
OrganizeImportPackageResolution_Label=Organize imported packages
2397
OrganizeImportPackageResolution_Label=Organize imported packages
2398
OrganizeExportPackageResolution_Label=Organize exported packages
2398
OrganizeExportPackageResolution_Label=Organize exported packages
2399
OpenManifest_label=Open Manifest
2400
OpenManifest_cannotFind=Cannot find manifest for {0}
2401
OpenManifest_cannotOpen=Cannot open manifest for {0}
2399
SyntaxColorTab_elements=Elements:
2402
SyntaxColorTab_elements=Elements:
2400
SyntaxColorTab_color=&Color:
2403
SyntaxColorTab_color=&Color:
2401
SyntaxColorTab_bold=&Bold
2404
SyntaxColorTab_bold=&Bold
(-)src/org/eclipse/pde/internal/ui/PDEUIMessages.java (+6 lines)
Lines 2809-2812 Link Here
2809
2809
2810
	public static String AddNewDependenciesOperation_searchForDependency;
2810
	public static String AddNewDependenciesOperation_searchForDependency;
2811
2811
2812
	public static String OpenManifestsAction_cannotFind;
2813
2814
	public static String OpenManifestsAction_cannotOpen;
2815
2816
	public static String OpenManifestsAction_title;
2817
2812
}
2818
}
(-)src/org/eclipse/pde/internal/ui/util/OpenManifestAction.java (+86 lines)
Added Link Here
1
package org.eclipse.pde.internal.ui.util;
2
import java.util.ArrayList;
3
import java.util.Iterator;
4
import org.eclipse.core.resources.IFile;
5
import org.eclipse.core.resources.IProject;
6
import org.eclipse.jface.action.IAction;
7
import org.eclipse.jface.dialogs.MessageDialog;
8
import org.eclipse.jface.viewers.ISelection;
9
import org.eclipse.jface.viewers.IStructuredSelection;
10
import org.eclipse.osgi.util.NLS;
11
import org.eclipse.pde.internal.core.WorkspaceModelManager;
12
import org.eclipse.pde.internal.ui.PDEPlugin;
13
import org.eclipse.pde.internal.ui.PDEUIMessages;
14
import org.eclipse.swt.custom.BusyIndicator;
15
import org.eclipse.ui.IWorkbenchWindow;
16
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
17
import org.eclipse.ui.PartInitException;
18
import org.eclipse.ui.ide.IDE;
19
public class OpenManifestAction implements IWorkbenchWindowActionDelegate {
20
	private ISelection fSelection;
21
	public OpenManifestAction() {
22
		super();
23
	}
24
	public void dispose() {
25
	}
26
	public void init(IWorkbenchWindow window) {
27
	}
28
	public void run(IAction action) {
29
		if (fSelection instanceof IStructuredSelection) {
30
			IStructuredSelection ssel = (IStructuredSelection) fSelection;
31
			Iterator it = ssel.iterator();
32
			final ArrayList projects = new ArrayList();
33
			while (it.hasNext()) {
34
				Object element = it.next();
35
				IProject proj = null;
36
				if (element instanceof IFile)
37
					proj = ((IFile) element).getProject();
38
				else if (element instanceof IProject)
39
					proj = (IProject) element;
40
				if (proj != null
41
						&& (WorkspaceModelManager.hasBundleManifest(proj) 
42
							|| WorkspaceModelManager.hasPluginManifest(proj)))
43
					projects.add(proj);
44
			}
45
			if (projects.size() > 0) {
46
				BusyIndicator.showWhile(PDEPlugin.getActiveWorkbenchShell()
47
						.getDisplay(), new Runnable() {
48
					public void run() {
49
						Iterator it = projects.iterator();
50
						while (it.hasNext()) {
51
							IProject project = (IProject) it.next();
52
							// TODO is there a nicer way to get this?
53
							IFile file = project
54
									.getFile("META-INF/MANIFEST.MF"); //$NON-NLS-1$
55
							if (file == null || !file.exists())
56
								file = project.getFile("plugin.xml"); //$NON-NLS-1$
57
							if (file == null || !file.exists())
58
								MessageDialog.openError(PDEPlugin
59
										.getActiveWorkbenchShell(),
60
										PDEUIMessages.OpenManifestsAction_title,
61
										NLS.bind(PDEUIMessages.OpenManifestsAction_cannotFind, project.getName()));
62
							else
63
								try {
64
									IDE.openEditor(PDEPlugin.getActivePage(),
65
											file);
66
								} catch (PartInitException e) {
67
									MessageDialog.openError(PDEPlugin
68
											.getActiveWorkbenchShell(),
69
											PDEUIMessages.OpenManifestsAction_title,
70
											NLS.bind(PDEUIMessages.OpenManifestsAction_cannotOpen, project.getName()));
71
								}
72
						}
73
					}
74
				});
75
			} else
76
				// TODO Update message
77
				MessageDialog.openInformation(PDEPlugin
78
						.getActiveWorkbenchShell(),
79
						PDEUIMessages.OpenManifestsAction_title,
80
						PDEUIMessages.OpenManifestsAction_cannotFind);
81
		}
82
	}
83
	public void selectionChanged(IAction action, ISelection selection) {
84
		fSelection = selection;
85
	}
86
}

Return to bug 133692