[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Bug fix NPE in the CView cdt.ui
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.78
diff -u -r1.78 ChangeLog
--- ChangeLog 2 Apr 2003 04:59:34 -0000 1.78
+++ ChangeLog 2 Apr 2003 15:05:07 -0000
@@ -1,3 +1,12 @@
+2003-04-02 Alain Magloire
+
+ Bug fix and cleanup in CView
+
+ * src/org/eclipse/internal/ui/cview/CView.java:
+ Cleanup the linkToEditor().
+ * src/org/eclipse/internal/util/UtilEditor.java:
+ Bug fix.
+
2003-04-01 Alain Magloire
Support to open a child in an IBinary if we know the TranslationUnit.
Index: src/org/eclipse/cdt/internal/ui/cview/CView.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/cview/CView.java,v
retrieving revision 1.18
diff -u -r1.18 CView.java
--- src/org/eclipse/cdt/internal/ui/cview/CView.java 2 Apr 2003 05:03:47 -0000 1.18
+++ src/org/eclipse/cdt/internal/ui/cview/CView.java 2 Apr 2003 15:05:08 -0000
@@ -19,10 +19,8 @@
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.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.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 @@
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() {
Index: src/org/eclipse/cdt/internal/ui/util/EditorUtility.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/util/EditorUtility.java,v
retrieving revision 1.7
diff -u -r1.7 EditorUtility.java
--- src/org/eclipse/cdt/internal/ui/util/EditorUtility.java 2 Apr 2003 05:04:12 -0000 1.7
+++ src/org/eclipse/cdt/internal/ui/util/EditorUtility.java 2 Apr 2003 15:05:08 -0000
@@ -152,7 +152,10 @@
element= ((IWorkingCopy) element).getOriginalElement();
if (element instanceof ISourceReference) {
- element = ((ISourceReference)element).getTranslationUnit();
+ ITranslationUnit tu = ((ISourceReference)element).getTranslationUnit();
+ if (tu != null) {
+ element = tu;
+ }
}
if (element instanceof ITranslationUnit) {