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

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/sandbox/ui/hyperlinks/JavaResourceHyperlink.java (-33 / +7 lines)
Lines 17-24 Link Here
17
import org.eclipse.core.runtime.Status;
17
import org.eclipse.core.runtime.Status;
18
import org.eclipse.core.runtime.jobs.Job;
18
import org.eclipse.core.runtime.jobs.Job;
19
import org.eclipse.debug.ui.IDebugModelPresentation;
19
import org.eclipse.debug.ui.IDebugModelPresentation;
20
import org.eclipse.jdt.core.IJavaProject;
21
import org.eclipse.jdt.core.IPackageFragment;
22
import org.eclipse.jdt.core.IType;
20
import org.eclipse.jdt.core.IType;
23
import org.eclipse.jdt.core.search.IJavaSearchConstants;
21
import org.eclipse.jdt.core.search.IJavaSearchConstants;
24
import org.eclipse.jdt.core.search.SearchEngine;
22
import org.eclipse.jdt.core.search.SearchEngine;
Lines 28-45 Link Here
28
import org.eclipse.jdt.core.search.SearchRequestor;
26
import org.eclipse.jdt.core.search.SearchRequestor;
29
import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
27
import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin;
30
import org.eclipse.jdt.internal.ui.JavaUIMessages;
28
import org.eclipse.jdt.internal.ui.JavaUIMessages;
29
import org.eclipse.jdt.internal.ui.dialogs.OpenTypeSelectionDialog;
31
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
30
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
32
import org.eclipse.jdt.ui.JavaElementLabelProvider;
33
import org.eclipse.jdt.ui.JavaElementLabels;
34
import org.eclipse.jdt.ui.JavaUI;
31
import org.eclipse.jdt.ui.JavaUI;
35
import org.eclipse.jface.dialogs.IDialogConstants;
32
import org.eclipse.jface.dialogs.IDialogConstants;
36
import org.eclipse.jface.dialogs.MessageDialog;
33
import org.eclipse.jface.dialogs.MessageDialog;
37
import org.eclipse.jface.text.IRegion;
34
import org.eclipse.jface.text.IRegion;
38
import org.eclipse.jface.text.hyperlink.IHyperlink;
35
import org.eclipse.jface.text.hyperlink.IHyperlink;
39
import org.eclipse.jface.viewers.ArrayContentProvider;
40
import org.eclipse.ui.IEditorInput;
36
import org.eclipse.ui.IEditorInput;
41
import org.eclipse.ui.PlatformUI;
37
import org.eclipse.ui.PlatformUI;
42
import org.eclipse.ui.dialogs.ListDialog;
43
import org.eclipse.ui.progress.UIJob;
38
import org.eclipse.ui.progress.UIJob;
44
39
45
/**
40
/**
Lines 127-133 Link Here
127
			@Override
122
			@Override
128
			public IStatus runInUIThread(IProgressMonitor monitor) {
123
			public IStatus runInUIThread(IProgressMonitor monitor) {
129
				if (sources.size() > 1) {
124
				if (sources.size() > 1) {
130
					openTypeDialog(sources, typeName);
125
					openTypeDialog(typeName);
131
				} else if (sources.size() == 1 && sources.get(0) != null) {
126
				} else if (sources.size() == 1 && sources.get(0) != null) {
132
					IType type = sources.get(0);
127
					IType type = sources.get(0);
133
					processSearchResult(type, typeName);
128
					processSearchResult(type, typeName);
Lines 169-204 Link Here
169
		}
164
		}
170
	}
165
	}
171
166
172
	private void openTypeDialog(final List<IType> sources, final String typeName) {
167
	private void openTypeDialog(final String typeName) {
173
		ListDialog dialog = new ListDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
168
		OpenTypeSelectionDialog dialog = new OpenTypeSelectionDialog(PlatformUI.getWorkbench()
174
		dialog.setInput(sources.toArray());
169
				.getActiveWorkbenchWindow()
175
		dialog.setContentProvider(new ArrayContentProvider());
170
				.getShell(), true, PlatformUI.getWorkbench().getProgressService(), null, IJavaSearchConstants.TYPE);
176
		dialog.setLabelProvider(new JavaElementLabelProvider() {
177
			@Override
178
			public String getText(Object element) {
179
				IType type = (IType) element;
180
				StringBuilder builder = new StringBuilder();
181
				builder.append(super.getText(type));
182
183
				IPackageFragment fragment = type.getPackageFragment();
184
				if (fragment != null) {
185
					builder.append(JavaElementLabels.CONCAT_STRING);
186
					builder.append(super.getText(fragment));
187
				}
188
189
				IJavaProject project = type.getJavaProject();
190
				if (project != null) {
191
					builder.append(JavaElementLabels.CONCAT_STRING);
192
					builder.append(super.getText(project));
193
				}
194
195
				return builder.toString();
196
			}
197
		});
198
171
199
		dialog.setTitle("Open Hyperlink");
172
		dialog.setTitle("Open Hyperlink");
200
		dialog.setMessage("More than one types are detected, please select one:");
173
		dialog.setMessage("More than one types are detected, please select one:");
201
		dialog.setHelpAvailable(false);
174
		dialog.setHelpAvailable(false);
175
		dialog.setInitialPattern(typeName);
202
176
203
		int result = dialog.open();
177
		int result = dialog.open();
204
		if (result != IDialogConstants.OK_ID) {
178
		if (result != IDialogConstants.OK_ID) {

Return to bug 244353