Skip to main content
summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAlain Magloire2003-04-02 15:05:58 +0000
committerAlain Magloire2003-04-02 15:05:58 +0000
commit3c432412f09c9b63148dd7ec04efd9b0d93780d3 (patch)
treeb2e8b83656bf366fd92a036d187f2cbe9fe8d605 /core
parent09948618e89210b4fe0d381f7cf31dc3500e2b32 (diff)
downloadorg.eclipse.cdt-3c432412f09c9b63148dd7ec04efd9b0d93780d3.tar.gz
org.eclipse.cdt-3c432412f09c9b63148dd7ec04efd9b0d93780d3.tar.xz
org.eclipse.cdt-3c432412f09c9b63148dd7ec04efd9b0d93780d3.zip
Cleanup the linkToEditor() method.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java64
1 files changed, 17 insertions, 47 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java
index 4df176e1feb..fd03a5da677 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java
@@ -19,10 +19,8 @@ import org.eclipse.cdt.core.model.ICModel;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IParent;
import org.eclipse.cdt.core.model.ISourceReference;
-import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.resources.MakeUtil;
import org.eclipse.cdt.internal.ui.StandardCElementLabelProvider;
-import org.eclipse.cdt.internal.ui.editor.CEditor;
import org.eclipse.cdt.internal.ui.editor.OpenIncludeAction;
import org.eclipse.cdt.internal.ui.makeview.MakeAction;
import org.eclipse.cdt.internal.ui.makeview.MakeTarget;
@@ -40,7 +38,6 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
@@ -84,11 +81,9 @@ import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IStorageEditorInput;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
@@ -1129,51 +1124,26 @@ public class CView extends ViewPart implements IMenuListener, ISetSelectionTarge
if (!CPluginPreferencePage.isLinkToEditor()) {
return;
}
+ // ignore selection changes if the package explorer is not the active part.
+ // In this case the selection change isn't triggered by a user.
+ if (!isActivePart())
+ return;
+ Object obj= selection.getFirstElement();
- Object obj = selection.getFirstElement();
- if (obj instanceof IFile && selection.size() == 1) {
- IFile file = (IFile) obj;
- IWorkbenchPage page = getSite().getPage();
- IEditorReference[] editorReferences = page.getEditorReferences();
- for (int i = 0; i < editorReferences.length; ++i) {
- IEditorPart editor = editorReferences[i].getEditor(false);
- if(null != editor) {
- IEditorInput input = editor.getEditorInput();
- if (input instanceof IFileEditorInput && file.equals(((IFileEditorInput)input).getFile())) {
- page.bringToTop(editor);
- }
- return;
- }
- }
- } else if (obj instanceof ISourceReference) {
- ISourceReference sourceRef = (ISourceReference) obj;
- ITranslationUnit tu = sourceRef.getTranslationUnit();
- if (tu == null)
- return;
- IPath path = tu.getPath();
- if (path == null)
- return;
- IWorkbenchPage page = getSite().getPage();
- IEditorReference editorReferences[] = page.getEditorReferences();
- for (int i = 0; i < editorReferences.length; ++i) {
- IEditorPart editor = editorReferences[i].getEditor(false);
- if (null != editor) {
- IEditorInput input = editor.getEditorInput();
- try {
- if (input instanceof IStorageEditorInput && path.equals(((IStorageEditorInput)input).getStorage().getFullPath())) {
- page.bringToTop(editor);
- if (editor instanceof CEditor) {
- CEditor e = (CEditor)editor;
- e.selectionChanged (new SelectionChangedEvent (e.getOutlinePage (),selection));
- }
- return;
- }
- } catch (CoreException e) {
- }
- }
+ if (selection.size() == 1) {
+ IEditorPart part= EditorUtility.isOpenInEditor(obj);
+ if (part != null) {
+ IWorkbenchPage page= getSite().getPage();
+ page.bringToTop(part);
+ if (obj instanceof ICElement)
+ EditorUtility.revealInEditor(part, (ICElement) obj);
}
-
}
+
+ }
+
+ private boolean isActivePart() {
+ return this == getSite().getPage().getActivePart();
}
void restoreFilters() {

Back to the top