diff options
author | Tomasz Zarna | 2011-10-12 14:23:59 +0000 |
---|---|---|
committer | Tomasz Zarna | 2011-10-12 14:23:59 +0000 |
commit | 12b860dea0d4099788267dd9aba45e5c29e86062 (patch) | |
tree | acbd054ce61e80ed45f09edf15dc5aa04213ee79 | |
parent | 8cd9ea442066a2977f5f50ea27d8c74ceef024d2 (diff) | |
download | eclipse.platform.team-12b860dea0d4099788267dd9aba45e5c29e86062.tar.gz eclipse.platform.team-12b860dea0d4099788267dd9aba45e5c29e86062.tar.xz eclipse.platform.team-12b860dea0d4099788267dd9aba45e5c29e86062.zip |
bug 272267: [Edit] MergeSourceViewer.getVerticalRuler(SourceViewer) uses
reflection
2 files changed, 31 insertions, 66 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/META-INF/MANIFEST.MF b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/META-INF/MANIFEST.MF index d4e9d5f2b..de0791902 100644 --- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/META-INF/MANIFEST.MF @@ -15,7 +15,7 @@ Export-Package: org.eclipse.compare, org.eclipse.compare.structuremergeviewer Require-Bundle: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", - org.eclipse.jface.text;bundle-version="[3.3.0,4.0.0)", + org.eclipse.jface.text;bundle-version="[3.8.0,4.0.0)", org.eclipse.ui.ide;bundle-version="[3.3.0,4.0.0)", org.eclipse.ui.views;bundle-version="[3.2.0,4.0.0)", org.eclipse.ui.workbench.texteditor;bundle-version="[3.5.0,4.0.0)", diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java index 0f823fde2..ec99bd716 100644 --- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java +++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2009 IBM Corporation and others. + * Copyright (c) 2000, 2011 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 @@ -12,37 +12,23 @@ *******************************************************************************/ package org.eclipse.compare.internal; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.ResourceBundle; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; - +import org.eclipse.compare.ICompareContainer; import org.eclipse.core.commands.Command; import org.eclipse.core.commands.IHandler; import org.eclipse.core.commands.operations.IOperationHistory; import org.eclipse.core.commands.operations.IOperationHistoryListener; import org.eclipse.core.commands.operations.IUndoContext; import org.eclipse.core.commands.operations.OperationHistoryEvent; - import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; - import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IMenuListener; @@ -51,13 +37,6 @@ import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; -import org.eclipse.jface.util.IPropertyChangeListener; -import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; - import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; @@ -71,14 +50,28 @@ import org.eclipse.jface.text.IUndoManagerExtension; import org.eclipse.jface.text.Position; import org.eclipse.jface.text.Region; import org.eclipse.jface.text.TextEvent; -import org.eclipse.jface.text.source.CompositeRuler; import org.eclipse.jface.text.source.IAnnotationModel; import org.eclipse.jface.text.source.ISharedTextColors; -import org.eclipse.jface.text.source.IVerticalRuler; import org.eclipse.jface.text.source.LineNumberRulerColumn; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.jface.text.source.SourceViewerConfiguration; - +import org.eclipse.jface.util.IPropertyChangeListener; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.StyledText; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorSite; @@ -89,9 +82,9 @@ import org.eclipse.ui.IWorkbenchPartSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.editors.text.EditorsUI; import org.eclipse.ui.menus.CommandContributionItem; import org.eclipse.ui.menus.CommandContributionItemParameter; - import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; import org.eclipse.ui.texteditor.ChangeEncodingAction; import org.eclipse.ui.texteditor.FindReplaceAction; @@ -99,10 +92,6 @@ import org.eclipse.ui.texteditor.IDocumentProvider; import org.eclipse.ui.texteditor.IElementStateListener; import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.ui.editors.text.EditorsUI; - -import org.eclipse.compare.ICompareContainer; - /** * Wraps a JFace SourceViewer and add some convenience methods. */ @@ -940,44 +929,20 @@ public class MergeSourceViewer implements ISelectionChangedListener, /** * Hides or shows line number ruler column based of preference setting */ - private void updateLineNumberRuler() - { - IVerticalRuler v= getVerticalRuler(getSourceViewer()); - if (v!=null && v instanceof CompositeRuler) { - CompositeRuler c= (CompositeRuler) v; - - if(!fShowLineNumber){ - if(fLineNumberColumn!=null){ - c.removeDecorator(fLineNumberColumn); - } - } else { - if(fLineNumberColumn==null){ - fLineNumberColumn = new LineNumberRulerColumn(); - updateLineNumberColumnPresentation(false); - } - c.addDecorator(0, fLineNumberColumn); + private void updateLineNumberRuler() { + if (!fShowLineNumber) { + if (fLineNumberColumn != null) { + getSourceViewer().removeVerticalRulerColumn(fLineNumberColumn); + } + } else { + if (fLineNumberColumn == null) { + fLineNumberColumn = new LineNumberRulerColumn(); + updateLineNumberColumnPresentation(false); } + getSourceViewer().addVerticalRulerColumn(fLineNumberColumn); } } - /** - * Calls the <code>getVerticalRuler</code> method of the given viewer. - * - * TODO: don't use reflection - * - * @param viewer the viewer to call <code>getVerticalRuler</code> on - */ - private IVerticalRuler getVerticalRuler(SourceViewer viewer) { - try { - Method method= SourceViewer.class.getDeclaredMethod("getVerticalRuler", new Class[] {}); //$NON-NLS-1$ - method.setAccessible(true); - return (IVerticalRuler) method.invoke(viewer, new Object[] {}); - } catch (Throwable e) { - CompareUIPlugin.log(e); - } - return null; - } - private void updateLineNumberColumnPresentation(boolean refresh) { if (fLineNumberColumn == null) return; |