Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 252111 Details for
Bug 56062
[source lookup] Duplicate source lookup should indicate full location of duplicate
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Java Resolve Source Duplicate Handler with Label Provider
Bug 56062 JDT.patch (text/plain), 6.83 KB, created by
Sarika Sinha
on 2015-04-02 02:55:07 EDT
(
hide
)
Description:
Java Resolve Source Duplicate Handler with Label Provider
Filename:
MIME Type:
Creator:
Sarika Sinha
Created:
2015-04-02 02:55:07 EDT
Size:
6.83 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.debug.ui >diff --git plugin.xml plugin.xml >index 8e0b12a..443aed7 100644 >--- plugin.xml >+++ plugin.xml >@@ -1,7 +1,7 @@ > <?xml version="1.0" encoding="UTF-8"?> > <?eclipse version="3.0"?> > <!-- >- Copyright (c) 2005, 2014 IBM Corporation and others. >+ Copyright (c) 2005, 2015 IBM Corporation and others. > All rights reserved. This program and the accompanying materials > are made available under the terms of the Eclipse Public License v1.0 > which accompanies this distribution, and is available at >@@ -2499,7 +2499,13 @@ > code="111" > class="org.eclipse.jdt.internal.debug.ui.EvaluationStackFrameContextStatusHandler" > id="org.eclipse.jdt.debug.ui.statusHandler.evaluationStackFrameContextStatusHandler" >- plugin="org.eclipse.jdt.debug"/> >+ plugin="org.eclipse.jdt.debug"/> >+ <statusHandler >+ code="206" >+ plugin="org.eclipse.debug.ui" >+ class="org.eclipse.jdt.internal.debug.ui.sourcelookup.JavaResolveDuplicatesHandler" >+ id="org.eclipse.jdt.debug.ui.statusHandler.selectSourceDialog"> >+ </statusHandler> > </extension> > <extension > point="org.eclipse.debug.core.sourceLocators"> >diff --git ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaResolveDuplicateLabelProvider.java ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaResolveDuplicateLabelProvider.java >new file mode 100644 >index 0000000..050e747 >--- /dev/null >+++ ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaResolveDuplicateLabelProvider.java >@@ -0,0 +1,28 @@ >+/******************************************************************************* >+ * Copyright (c) 2015 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.debug.ui.sourcelookup; >+ >+import org.eclipse.debug.internal.ui.sourcelookup.SourceElementLabelProvider; >+import org.eclipse.jdt.core.IJavaElement; >+import org.eclipse.jdt.ui.JavaElementLabels; >+ >+@SuppressWarnings("restriction") >+public class JavaResolveDuplicateLabelProvider extends SourceElementLabelProvider { >+ >+ @Override >+ public String getText(Object element) { >+ if (element instanceof IJavaElement) { >+ return JavaElementLabels.getTextLabel(element, JavaElementLabels.ALL_DEFAULT | JavaElementLabels.APPEND_ROOT_PATH); >+ } >+ return super.getText(element); >+ } >+ >+} >diff --git ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaResolveDuplicatesHandler.java ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaResolveDuplicatesHandler.java >new file mode 100644 >index 0000000..e9efbe7 >--- /dev/null >+++ ui/org/eclipse/jdt/internal/debug/ui/sourcelookup/JavaResolveDuplicatesHandler.java >@@ -0,0 +1,26 @@ >+/******************************************************************************* >+ * Copyright (c) 2015 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.debug.ui.sourcelookup; >+ >+import org.eclipse.debug.internal.ui.sourcelookup.ResolveDuplicatesHandler; >+import org.eclipse.jface.viewers.ILabelProvider; >+ >+/** >+ * Java Status handler to prompt for duplicate source element resolution. >+ * >+ */ >+@SuppressWarnings("restriction") >+public class JavaResolveDuplicatesHandler extends ResolveDuplicatesHandler { >+ @Override >+ public ILabelProvider getLabelProvider() { >+ return new JavaResolveDuplicateLabelProvider(); >+ } >+} >#P org.eclipse.jdt.launching >diff --git launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java >index f539253..3c61746 100644 >--- launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java >+++ launching/org/eclipse/jdt/internal/launching/JavaSourceLookupDirector.java >@@ -11,8 +11,14 @@ > package org.eclipse.jdt.internal.launching; > > import java.util.HashSet; >+import java.util.List; > import java.util.Set; > >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.debug.core.DebugPlugin; >+import org.eclipse.debug.core.IStatusHandler; > import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector; > import org.eclipse.debug.core.sourcelookup.ISourceContainerType; > import org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant; >@@ -28,6 +34,7 @@ > public class JavaSourceLookupDirector extends AbstractSourceLookupDirector { > > private static Set<String> fFilteredTypes; >+ protected static final IStatus fJavaResolveDuplicatesStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 206, "", null); //$NON-NLS-1$//$NON-NLS-2$ > > static { > fFilteredTypes = new HashSet<String>(); >@@ -51,4 +58,42 @@ > public boolean supportsSourceContainerType(ISourceContainerType type) { > return !fFilteredTypes.contains(type.getId()); > } >+ >+ /** >+ * Returns the source element to associate with the given element. This method is called when more than one source element has been found for an >+ * element, and allows the source director to select a single source element to associate with the element. >+ * <p> >+ * Subclasses should override this method as appropriate. For example, to prompt the user to choose a source element. >+ * </p> >+ * >+ * @param element >+ * the debug artifact for which source is being searched for >+ * @param sources >+ * the source elements found for the given element >+ * @return a single source element for the given element >+ */ >+ @Override >+ public Object resolveSourceElement(Object element, List<Object> sources) { >+ // check the duplicates cache first >+ for (Object dup : sources) { >+ Object resolved = getCachedElement(dup); >+ if (resolved != null) { >+ return resolved; >+ } >+ } >+ // consult a status handler >+ IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(fPromptStatus); >+ if (prompter != null) { >+ try { >+ Object result = prompter.handleStatus(fJavaResolveDuplicatesStatus, new Object[] { element, sources }); >+ if (result != null) { >+ cacheResolvedElement(sources, result); >+ return result; >+ } >+ } >+ catch (CoreException e) { >+ } >+ } >+ return sources.get(0); >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
daniel_megert
:
review-
Actions:
View
|
Diff
Attachments on
bug 56062
:
249815
|
249920
|
252111
|
252112
|
252338
|
252343