[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.92
diff -u -r1.92 ChangeLog
--- ChangeLog 16 Apr 2003 18:46:53 -0000 1.92
+++ ChangeLog 17 Apr 2003 16:53:21 -0000
@@ -1,3 +1,15 @@
+2003-04-17 Alain Magloire
+
+ Bug 36584
+
+ When switching the through the CEditor the range was not
+ save.
+
+ * src/org/eclipse/cdt/internal/ui/editor/CEditor.java:
+ setSelection(ICElement), new method
+ * src/org/eclipse/cdt/internal/util/EditorUtility.java:
+ revealInEditor use setSelection(ICElement).
+
2003-04-16 Alain Magloire
Bug 36582
Index: src/org/eclipse/cdt/internal/ui/editor/CEditor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java,v
retrieving revision 1.21
diff -u -r1.21 CEditor.java
--- src/org/eclipse/cdt/internal/ui/editor/CEditor.java 7 Apr 2003 16:52:40 -0000 1.21
+++ src/org/eclipse/cdt/internal/ui/editor/CEditor.java 17 Apr 2003 16:53:21 -0000
@@ -14,8 +14,10 @@
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.ISourceRange;
import org.eclipse.cdt.core.model.ISourceReference;
+import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
import org.eclipse.cdt.internal.ui.text.CTextTools;
@@ -578,6 +580,37 @@
}
}
+ public void setSelection(ICElement element) {
+
+ if (element == null || element instanceof ITranslationUnit) {
+ /*
+ * If the element is an ITranslationUnit this unit is either the input
+ * of this editor or not being displayed. In both cases, nothing should
+ * happened.
+ */
+ return;
+ } if (element instanceof ISourceReference) {
+ ISourceReference reference= (ISourceReference) element;
+ // set hightlight range
+ setSelection(reference, true);
+ // set outliner selection
+ //if (fOutlinePage != null) {
+ // fOutlinePage.removeSelectionChangedListener(fSelectionChangedListener);
+ // fOutlinePage.select(reference);
+ // fOutlinePage.addSelectionChangedListener(fSelectionChangedListener);
+ //}
+ }
+ }
+
+ public void setSelection(ISourceReference element, boolean moveCursor) {
+ if (element != null) {
+ try {
+ setSelection(element.getSourceRange(), moveCursor);
+ } catch (CModelException e) {
+ }
+ }
+ }
+
/**
* Sets the current editor selection to the source range. Optionally
* sets the current editor position.
@@ -586,50 +619,52 @@
* @param moveCursor if true the editor is scrolled to show the range.
*/
public void setSelection(ISourceRange element, boolean moveCursor) {
- if (element != null) {
- try {
- IRegion alternateRegion = null;
- int start= element.getStartPos();
- int length= element.getLength();
-
- // Sanity check sometimes the parser may throw wrong numbers.
- if (start < 0 || length < 0) {
- start = 0;
- length = 0;
- }
-
- // 0 length and start and non-zero start line says we know
- // the line for some reason, but not the offset.
- if (length == 0 && start == 0 && element.getStartLine() != 0) {
- alternateRegion =
- getDocumentProvider().getDocument(getEditorInput()).getLineInformation(element.getStartLine());
- if (alternateRegion != null) {
- start = alternateRegion.getOffset();
- length = alternateRegion.getLength();
- }
+
+ if (element == null) {
+ return;
+ }
+
+ try {
+ IRegion alternateRegion = null;
+ int start= element.getStartPos();
+ int length= element.getLength();
+
+ // Sanity check sometimes the parser may throw wrong numbers.
+ if (start < 0 || length < 0) {
+ start = 0;
+ length = 0;
+ }
+
+ // 0 length and start and non-zero start line says we know
+ // the line for some reason, but not the offset.
+ if (length == 0 && start == 0 && element.getStartLine() != 0) {
+ alternateRegion =
+ getDocumentProvider().getDocument(getEditorInput()).getLineInformation(element.getStartLine());
+ if (alternateRegion != null) {
+ start = alternateRegion.getOffset();
+ length = alternateRegion.getLength();
}
- setHighlightRange(start, length, moveCursor);
+ }
+ setHighlightRange(start, length, moveCursor);
- if (moveCursor) {
- start= element.getIdStartPos();
- length= element.getIdLength();
- if (start == 0 && length == 0 && alternateRegion != null) {
- start = alternateRegion.getOffset();
- length = alternateRegion.getLength();
- }
- if (start > -1 && getSourceViewer() != null) {
- getSourceViewer().revealRange(start, length);
- getSourceViewer().setSelectedRange(start, length);
- }
- updateStatusField(CTextEditorActionConstants.STATUS_CURSOR_POS);
+ if (moveCursor) {
+ start= element.getIdStartPos();
+ length= element.getIdLength();
+ if (start == 0 && length == 0 && alternateRegion != null) {
+ start = alternateRegion.getOffset();
+ length = alternateRegion.getLength();
+ }
+ if (start > -1 && getSourceViewer() != null) {
+ getSourceViewer().revealRange(start, length);
+ getSourceViewer().setSelectedRange(start, length);
}
- return;
-
- } catch (IllegalArgumentException x) {
- } catch (BadLocationException e ) {
+ updateStatusField(CTextEditorActionConstants.STATUS_CURSOR_POS);
}
+ return;
+ } catch (IllegalArgumentException x) {
+ } catch (BadLocationException e ) {
}
-
+
if (moveCursor)
resetHighlightRange();
}
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.8
diff -u -r1.8 EditorUtility.java
--- src/org/eclipse/cdt/internal/ui/util/EditorUtility.java 2 Apr 2003 15:06:10 -0000 1.8
+++ src/org/eclipse/cdt/internal/ui/util/EditorUtility.java 17 Apr 2003 16:53:22 -0000
@@ -102,13 +102,7 @@
*/
public static void revealInEditor(IEditorPart part, ICElement element) {
if (element != null && part instanceof CEditor) {
- if (element instanceof ISourceReference) {
- try {
- ISourceRange range = ((ISourceReference) element).getSourceRange();
- ((CEditor) part).setSelection(range, true);
- } catch (CModelException e) {
- }
- }
+ ((CEditor) part).setSelection(element);
}
}