[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] CEditor update
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.93
diff -u -r1.93 ChangeLog
--- ChangeLog 17 Apr 2003 16:56:13 -0000 1.93
+++ ChangeLog 21 Apr 2003 16:58:53 -0000
@@ -1,3 +1,23 @@
+2003-04-21 David Inglis
+
+ Update CEditor to be 2.0/2.1 compliant.
+
+ * src/org/eclipse/cdt/internal/ui/editor/CEditor.java
+ * src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
+ * src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java
+ *
src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
+ * src/org/eclipse/cdt/internal/ui/text/CPairMatcher.java
+
+ * src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java (removed)
+ * src/org/eclipse/cdt/internal/ui/editor/IPainter.java (removed)
+ * src/org/eclipse/cdt/internal/ui/editor/LinePainter.java (removed)
+ * src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java (removed)
+ * src/org/eclipse/cdt/internal/ui/editor/PaintManager.java (removed)
+ * src/org/eclipse/cdt/internal/ui/editor/PrintMarginPainter.java
(removed)
+ * src/org/eclipse/cdt/internal/ui/editor/ProblemPainter.java (removed)
+ *
src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
(removed)
+ * src/org/eclipse/cdt/internal/ui/util/CoreUtility.java (removed)
+
2003-04-17 Alain Magloire
Bug 36584
Index: src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java
diff -N src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java
--- src/org/eclipse/cdt/internal/ui/editor/BracketPainter.java 27 Mar
2003 20:01:57 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,169 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-
-import org.eclipse.cdt.internal.ui.text.CPairMatcher;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.ISourceViewer;
-
-
-
-
-public final class BracketPainter implements IPainter, PaintListener {
-
- private CPairMatcher fMatcher= new CPairMatcher(new char[] { '{',
'}', '(', ')', '[', ']' });
- private Position fBracketPosition= new Position(0, 0);
- private int fAnchor;
-
- private boolean fIsActive= false;
- private ISourceViewer fSourceViewer;
- private StyledText fTextWidget;
- private Color fColor;
- private boolean fNoBox;
-
- private IPositionManager fPositionManager;
-
-
- public BracketPainter(ISourceViewer sourceViewer) {
- fSourceViewer= sourceViewer;
- fTextWidget= sourceViewer.getTextWidget();
- }
-
- public void setHighlightColor(Color color) {
- fColor= color;
- }
-
- public void setHighlightStyle(boolean nobox) {
- fNoBox = nobox;
- }
-
- public void dispose() {
- if (fMatcher != null) {
- fMatcher.dispose();
- fMatcher= null;
- }
-
- fColor= null;
- fTextWidget= null;
- }
-
- public void deactivate(boolean redraw) {
- if (fIsActive) {
- fIsActive= false;
- fTextWidget.removePaintListener(this);
- if (fPositionManager != null)
- fPositionManager.removeManagedPosition(fBracketPosition);
- if (redraw)
- handleDrawRequest(null);
- }
- }
-
- public void paintControl(PaintEvent event) {
- if (fTextWidget != null)
- handleDrawRequest(event.gc);
- }
-
- private void handleDrawRequest(GC gc) {
-
- if (fBracketPosition.isDeleted)
- return;
-
- int length= fBracketPosition.getLength();
- if (length < 1)
- return;
-
- int offset= fBracketPosition.getOffset();
- IRegion region= fSourceViewer.getVisibleRegion();
-
- if (region.getOffset() <= offset && region.getOffset() +
region.getLength() >= offset + length) {
- offset -= region.getOffset();
- if (CPairMatcher.RIGHT == fAnchor)
- draw(gc, offset, 1);
- else
- draw(gc, offset + length -1, 1);
- }
- }
-
- private void draw(GC gc, int offset, int length) {
- if (gc != null) {
- Point left= fTextWidget.getLocationAtOffset(offset);
- Point right= fTextWidget.getLocationAtOffset(offset + length);
-
- gc.setForeground(fColor);
- if(fNoBox) {
- gc.drawString(fTextWidget.getTextRange(offset, 1),
left.x, left.y, true);
- } else {
- gc.drawRectangle(left.x, left.y, right.x - left.x - 1,
gc.getFontMetrics().getHeight() - 1);
- }
- } else {
- fTextWidget.redrawRange(offset, length, true);
- }
- }
-
- /*
- * @see IPainter#paint(int)
- */
- public void paint(int reason) {
- Point selection= fSourceViewer.getSelectedRange();
- if (selection.y > 0) {
- deactivate(true);
- return;
- }
-
- IRegion pair= fMatcher.match(fSourceViewer.getDocument(),
selection.x);
- if (pair == null) {
- deactivate(true);
- return;
- }
-
- if (fIsActive) {
- // only if different
- if (pair.getOffset() != fBracketPosition.getOffset() ||
- pair.getLength() != fBracketPosition.getLength() ||
- fMatcher.getAnchor() != fAnchor) {
-
- // remove old highlighting
- handleDrawRequest(null);
- // update position
- fBracketPosition.isDeleted= false;
- fBracketPosition.offset= pair.getOffset();
- fBracketPosition.length= pair.getLength();
- fAnchor= fMatcher.getAnchor();
- // apply new highlighting
- handleDrawRequest(null);
-
- }
- } else {
-
- fIsActive= true;
-
- fBracketPosition.isDeleted= false;
- fBracketPosition.offset= pair.getOffset();
- fBracketPosition.length= pair.getLength();
- fAnchor= fMatcher.getAnchor();
-
- fTextWidget.addPaintListener(this);
- fPositionManager.addManagedPosition(fBracketPosition);
- handleDrawRequest(null);
- }
- }
-
- /*
- * @see IPainter#setPositionManager(IPositionManager)
- */
- public void setPositionManager(IPositionManager manager) {
- fPositionManager= manager;
- }
-}
-
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.22
diff -u -r1.22 CEditor.java
--- src/org/eclipse/cdt/internal/ui/editor/CEditor.java 17 Apr 2003
16:55:46 -0000 1.22
+++ src/org/eclipse/cdt/internal/ui/editor/CEditor.java 21 Apr 2003
16:58:55 -0000
@@ -4,12 +4,10 @@
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
-
-import java.lang.reflect.InvocationTargetException;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.StringTokenizer;
import org.eclipse.cdt.core.model.CModelException;
@@ -19,28 +17,19 @@
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.CPairMatcher;
import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
import org.eclipse.cdt.internal.ui.text.CTextTools;
-import org.eclipse.cdt.internal.ui.text.IColorManager;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.DocumentCommand;
import org.eclipse.jface.text.IDocument;
@@ -50,13 +39,13 @@
import org.eclipse.jface.text.ITextViewerExtension;
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.AnnotationRulerColumn;
-import org.eclipse.jface.text.source.CompositeRuler;
+import org.eclipse.jface.text.source.IAnnotationAccess;
import org.eclipse.jface.text.source.IAnnotationModel;
+import org.eclipse.jface.text.source.IOverviewRuler;
+import org.eclipse.jface.text.source.ISharedTextColors;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.text.source.IVerticalRulerColumn;
-import org.eclipse.jface.text.source.LineNumberRulerColumn;
+import org.eclipse.jface.text.source.OverviewRuler;
import org.eclipse.jface.text.source.SourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.jface.util.PropertyChangeEvent;
@@ -66,42 +55,29 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.VerifyKeyListener;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.graphics.Color;
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.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorActionBarContributor;
import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IPartService;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.SaveAsDialog;
import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.editors.text.TextEditorPreferenceConstants;
+import org.eclipse.ui.internal.editors.text.EditorsPlugin;
import org.eclipse.ui.part.EditorActionBarContributor;
-import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.texteditor.AnnotationPreference;
import org.eclipse.ui.texteditor.ContentAssistAction;
+import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
import org.eclipse.ui.texteditor.DefaultRangeIndicator;
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
import org.eclipse.ui.texteditor.MarkerAnnotation;
+import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
import org.eclipse.ui.texteditor.MarkerUtilities;
+import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
import org.eclipse.ui.texteditor.TextOperationAction;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.eclipse.ui.views.tasklist.TaskList;
@@ -110,103 +86,53 @@
*/
public class CEditor extends TextEditor implements
ISelectionChangedListener {
-
/** The outline page */
protected CContentOutlinePage fOutlinePage;
-
+
private SearchForReferencesAction fSearchForReferencesAction;
-
- /** Status bar fields -- @@@ gone with Eclipse 2.0 */
- private Map fStatusFields;
- private boolean fInserting= true;
-
- /** The editor's foreground color -- gone in 2.0 */
- private Color fForegroundColor;
- /** The editor's background color */
- private Color fBackgroundColor;
-
-
+
protected ISelectionChangedListener fStatusLineClearer;
-
- /** The editor's paint manager */
- private PaintManager fPaintManager;
- /** The editor's bracket painter */
- private BracketPainter fBracketPainter;
- /** The editor's line painter */
- private LinePainter fLinePainter;
- /** The editor's problem painter */
- private ProblemPainter fProblemPainter;
- /** The editor's print margin ruler painter */
- private PrintMarginPainter fPrintMarginPainter;
+
+ protected final static char[] BRACKETS = { '{', '}', '(', ')', '[',
']' };
+
+ protected CPairMatcher fBracketMatcher = new CPairMatcher(BRACKETS);
+
/** The editor's tab converter */
private TabConverter fTabConverter;
-
+
+ private MarkerAnnotationPreferences fAnnotationPreferences;
+
/** Listener to annotation model changes that updates the error
tick in the tab image */
private CEditorErrorTickUpdater fCEditorErrorTickUpdater;
-
- /** The line number ruler column */
- private LineNumberRulerColumn fLineNumberRulerColumn;
-
- /* Preference key line color shading */
- public final static String CURRENT_LINE= "CEditor.currentLine";
- /* Preference key for color of shading */
- public final static String CURRENT_LINE_COLOR=
"CEditor.currentLineColor";
/* Preference key for matching brackets */
- public final static String MATCHING_BRACKETS= "matchingBrackets";
- /* Preference key for matching brackets color */
- public final static String MATCHING_BRACKETS_COLOR=
"matchingBracketsColor";
- /* Preference key for matching brackets color */
- public final static String MATCHING_BRACKETS_NOBOX=
"matchingBracketsNobox";
- /* Preference key for matching brackets color */
- public final static String PREFERENCE_COLOR_BACKGROUND =
"CEditor.preferenceColorBackground";
- /* Preference key for matching brackets color */
- public final static String PREFERENCE_COLOR_FOREGROUND =
"CEditor.preferenceColorForeground";
+ public final static String MATCHING_BRACKETS = "matchingBrackets";
/* Preference key for matching brackets color */
- public final static String
PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT =
"CEditor.preferenceColorBackgroundDefault";
- /* Preference key for matching brackets color */
- public final static String
PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT =
"CEditor.preferenceColorForegroundDefault";
- /** Preference key for problem indication */
- public final static String PROBLEM_INDICATION= "problemIndication";
- /** Preference key for problem highlight color */
- public final static String PROBLEM_INDICATION_COLOR=
"problemIndicationColor";
- /** Preference key for showing print marging ruler */
- public final static String PRINT_MARGIN= "printMargin";
- /** Preference key for print margin ruler color */
- public final static String PRINT_MARGIN_COLOR= "printMarginColor";
- /** Preference key for print margin ruler column */
- public final static String PRINT_MARGIN_COLUMN= "printMarginColumn";
+ public final static String MATCHING_BRACKETS_COLOR =
"matchingBracketsColor";
/** Preference key for inserting spaces rather than tabs */
- public final static String SPACES_FOR_TABS= "spacesForTabs";
+ public final static String SPACES_FOR_TABS = "spacesForTabs";
/** Preference key for linked position color */
- public final static String LINKED_POSITION_COLOR=
"linkedPositionColor"; //$NON-NLS-1$
- /** Preference key for shwoing the overview ruler */
- public final static String OVERVIEW_RULER= "overviewRuler";
//$NON-NLS-1$
-
- /** Preference key for showing the line number ruler */
- public final static String LINE_NUMBER_RULER= "lineNumberRuler";
//$NON-NLS-1$
- /** Preference key for the foreground color of the line numbers */
- public final static String LINE_NUMBER_COLOR= "lineNumberColor";
//$NON-NLS-1$
-
+ public final static String LINKED_POSITION_COLOR =
"linkedPositionColor"; //$NON-NLS-1$
/**
* Default constructor.
*/
public CEditor() {
super();
- CTextTools textTools= CUIPlugin.getDefault().getTextTools();
+ fAnnotationPreferences = new MarkerAnnotationPreferences();
+ CTextTools textTools = CUIPlugin.getDefault().getTextTools();
setSourceViewerConfiguration(new
CSourceViewerConfiguration(textTools, this));
setDocumentProvider(CUIPlugin.getDefault().getDocumentProvider());
setRangeIndicator(new DefaultRangeIndicator());
setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore());
-
+
setEditorContextMenuId("#CEditorContext"); //$NON-NLS-1$
setRulerContextMenuId("#CEditorRulerContext"); //$NON-NLS-1$
setOutlinerContextMenuId("#CEditorOutlinerContext"); //$NON-NLS-1$
-
- fCEditorErrorTickUpdater= new CEditorErrorTickUpdater(this);
+
+ fCEditorErrorTickUpdater = new CEditorErrorTickUpdater(this);
}
-
+
/**
* @see AbstractTextEditor#doSetInput(IEditorInput)
*/
@@ -214,7 +140,7 @@
super.doSetInput(input);
fCEditorErrorTickUpdater.setAnnotationModel(getDocumentProvider().getAnnotationModel(input));
}
-
+
/**
* Update the title image
*/
@@ -222,129 +148,34 @@
setTitleImage(image);
}
-
- /**
- * @see IEditorPart#init(IWorkbenchPartSite, Object)
- */
- public void init(IEditorSite site, IEditorInput input) throws
PartInitException {
- //if (!(input instanceof IFileEditorInput)) {
- // throw new
PartInitException(CUIPlugin.getResourceString("Editor.error.invalid_input"));
- //}
- super.init(site, input);
- }
-
-
/**
* Gets the current input
- */
+ */
public IFile getInputFile() {
//IFileEditorInput editorInput =
(IFileEditorInput)getEditorInput();
- IEditorInput editorInput= (IEditorInput)getEditorInput();
+ IEditorInput editorInput = (IEditorInput) getEditorInput();
if (editorInput != null) {
if ((editorInput instanceof IFileEditorInput)) {
- return ((IFileEditorInput)editorInput).getFile();
+ return ((IFileEditorInput) editorInput).getFile();
}
}
return null;
}
-
public boolean isSaveAsAllowed() {
return true;
}
- /*
- * 1GEUSSR: ITPUI:ALL - User should never loose changes made in the
editors.
- * Changed behavior to make sure that if called inside a regular
save (because
- * of deletion of input element) there is a way to report back to
the caller.
- */
- protected void performSaveAs(IProgressMonitor progressMonitor) {
-
- Shell shell= getSite().getShell();
-
- SaveAsDialog dialog= new SaveAsDialog(shell);
- if (dialog.open() == Dialog.CANCEL) {
- if (progressMonitor != null)
- progressMonitor.setCanceled(true);
- return;
- }
-
- IPath filePath= dialog.getResult();
- if (filePath == null) {
- if (progressMonitor != null)
- progressMonitor.setCanceled(true);
- return;
- }
-
- filePath= filePath.removeTrailingSeparator();
- IPath folderPath= filePath.removeLastSegments(1);
- if (folderPath == null) {
- if (progressMonitor != null)
- progressMonitor.setCanceled(true);
- return;
- }
-
- IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
-
- /*
- * 1GF7WG9: ITPJUI:ALL - EXCEPTION: "Save As..." always fails
- */
-
- IFile file= root.getFile(filePath);
- final FileEditorInput newInput= new FileEditorInput(file);
-
- WorkspaceModifyOperation op= new WorkspaceModifyOperation() {
- public void execute(final IProgressMonitor monitor) throws
CoreException {
-
- /*
- * 1GF5YOX: ITPJUI:ALL - Save of delete file claims
it's still there
- * Changed false to true.
- */
- getDocumentProvider().saveDocument(monitor, newInput,
getDocumentProvider().getDocument(getEditorInput()), true);
- }
- };
-
- boolean success= false;
- try {
-
- getDocumentProvider().aboutToChange(newInput);
-
- new ProgressMonitorDialog(shell).run(false, true, op);
- setInput(newInput);
- success= true;
-
- } catch (InterruptedException x) {
- } catch (InvocationTargetException x) {
-
- /*
- * 1GF5YOX: ITPJUI:ALL - Save of delete file claims it's
still there
- * Missing resources.
- */
- Throwable t= x.getTargetException();
- if (t instanceof CoreException) {
- CoreException cx= (CoreException) t;
- ErrorDialog.openError(shell,
CEditorMessages.getString("CEditor.error.saving.title2"),
CEditorMessages.getString("CEditor.error.saving.message2"),
cx.getStatus()); //$NON-NLS-1$ //$NON-NLS-2$
- } else {
- MessageDialog.openError(shell,
CEditorMessages.getString("CEditor.error.saving.title3"),
CEditorMessages.getString("CEditor.error.saving.message3") +
t.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- } finally {
-
- if (progressMonitor != null)
- progressMonitor.setCanceled(!success);
- }
- }
-
/**
* Gets the outline page of the c-editor
*/
public CContentOutlinePage getOutlinePage() {
if (fOutlinePage == null) {
- fOutlinePage= new CContentOutlinePage(this);
+ fOutlinePage = new CContentOutlinePage(this);
fOutlinePage.addSelectionChangedListener(this);
}
return fOutlinePage;
}
-
+
/**
* @see AbstractTextEditor#getAdapter(Class)
*/
@@ -362,87 +193,33 @@
* @param event the property change event
*/
protected void handlePreferenceStoreChanged(PropertyChangeEvent
event) {
- AdaptedSourceViewer asv= (AdaptedSourceViewer) getSourceViewer();
-
+ AdaptedSourceViewer asv = (AdaptedSourceViewer) getSourceViewer();
+
try {
- if(asv != null) {
-
- String property= event.getProperty();
- if (PREFERENCE_COLOR_FOREGROUND.equals(property) ||
PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT.equals(property) ||
- PREFERENCE_COLOR_BACKGROUND.equals(property) ||
PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT.equals(property))
- {
- initializeViewerColors(getSourceViewer());
- getSourceViewer().getTextWidget().redraw();
- return;
- }
-
- if (CURRENT_LINE.equals(property)) {
- if (isLineHighlightingEnabled())
- startLineHighlighting();
- else
- stopLineHighlighting();
- return;
- }
-
- if (CURRENT_LINE_COLOR.equals(property)) {
- if (fLinePainter != null)
-
fLinePainter.setHighlightColor(getColor(CURRENT_LINE_COLOR));
- return;
- }
-
- if (PROBLEM_INDICATION.equals(property)) {
- if (isProblemIndicationEnabled())
- startProblemIndication();
- else
- stopProblemIndication();
- return;
- }
-
- if (PROBLEM_INDICATION_COLOR.equals(property)) {
- if (fProblemPainter != null)
-
fProblemPainter.setHighlightColor(getColor(PROBLEM_INDICATION_COLOR));
- return;
- }
-
- if (PRINT_MARGIN.equals(property)) {
- if (isShowingPrintMarginEnabled())
- startShowingPrintMargin();
- else
- stopShowingPrintMargin();
- return;
- }
-
- if (PRINT_MARGIN_COLOR.equals(property)) {
- if (fPrintMarginPainter != null)
-
fPrintMarginPainter.setMarginRulerColor(getColor(PRINT_MARGIN_COLOR));
- return;
- }
-
- if (PRINT_MARGIN_COLUMN.equals(property)) {
- if (fPrintMarginPainter != null)
-
fPrintMarginPainter.setMarginRulerColumn(getPreferenceStore().getInt(PRINT_MARGIN_COLUMN));
- return;
- }
-
+ if (asv != null) {
+
+ String property = event.getProperty();
+
if
(CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH.equals(property)) {
- SourceViewerConfiguration configuration=
getSourceViewerConfiguration();
- String[] types=
configuration.getConfiguredContentTypes(asv);
- for (int i= 0; i < types.length; i++)
-
asv.setIndentPrefixes(configuration.getIndentPrefixes(asv, types[i]),
types[i]);
-
+ SourceViewerConfiguration configuration =
getSourceViewerConfiguration();
+ String[] types =
configuration.getConfiguredContentTypes(asv);
+ for (int i = 0; i < types.length; i++)
+
asv.setIndentPrefixes(configuration.getIndentPrefixes(asv, types[i]),
types[i]);
+
if (fTabConverter != null)
-
fTabConverter.setNumberOfSpacesPerTab(getPreferenceStore().getInt(CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH));
-
- Object value= event.getNewValue();
-
+ fTabConverter.setNumberOfSpacesPerTab(
+
getPreferenceStore().getInt(CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH));
+
+ Object value = event.getNewValue();
+
if (value instanceof Integer) {
asv.getTextWidget().setTabs(((Integer)
value).intValue());
-
+
} else if (value instanceof String) {
asv.getTextWidget().setTabs(Integer.parseInt((String) value));
}
}
-
+
if (SPACES_FOR_TABS.equals(property)) {
if (isTabConversionEnabled())
startTabConversion();
@@ -450,127 +227,23 @@
stopTabConversion();
return;
}
-
- if (MATCHING_BRACKETS.equals(property)) {
- if (isBracketHighlightingEnabled())
- startBracketHighlighting();
- else
- stopBracketHighlighting();
- return;
- }
-
- if (MATCHING_BRACKETS_COLOR.equals(property)) {
- if (fBracketPainter != null)
-
fBracketPainter.setHighlightColor(getColor(MATCHING_BRACKETS_COLOR));
- return;
- }
- if (MATCHING_BRACKETS_NOBOX.equals(property)) {
- if (isBracketHighlightingEnabled())
- setBracketHighlightingStyle();
- return;
- }
- if (LINE_NUMBER_RULER.equals(property)) {
- if (isLineNumberRulerVisible())
- showLineNumberRuler();
- else
- hideLineNumberRuler();
- return;
- }
-
- if (fLineNumberRulerColumn != null &&
- (LINE_NUMBER_COLOR.equals(property) ||
-
PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT.equals(property) ||
- PREFERENCE_COLOR_BACKGROUND.equals(property))) {
-
-
initializeLineNumberRulerColumn(fLineNumberRulerColumn);
- }
-
- if (OVERVIEW_RULER.equals(property)) {
- if (isOverviewRulerVisible())
- showOverviewRuler();
- else
- hideOverviewRuler();
- return;
- }
}
} finally {
-
super.handlePreferenceStoreChanged(event);
-
- if (asv != null && affectsTextPresentation(event))
- asv.invalidateTextPresentation();
- }
- }
-
- /**
- * Initializes the given viewer's colors.
- *
- * @param viewer the viewer to be initialized
- */
- private void initializeViewerColors(ISourceViewer viewer) {
-
- IPreferenceStore store= getPreferenceStore();
- if (store != null) {
-
- StyledText styledText= viewer.getTextWidget();
-
- // ----------- foreground color --------------------
- Color color=
store.getBoolean(PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT)
- ? null
- : createColor(store, PREFERENCE_COLOR_FOREGROUND,
styledText.getDisplay());
- styledText.setForeground(color);
-
- if (fForegroundColor != null)
- fForegroundColor.dispose();
-
- fForegroundColor= color;
-
- // ---------- background color ----------------------
- color=
store.getBoolean(PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)
- ? null
- : createColor(store, PREFERENCE_COLOR_BACKGROUND,
styledText.getDisplay());
- styledText.setBackground(color);
-
- if (fBackgroundColor != null)
- fBackgroundColor.dispose();
-
- fBackgroundColor= color;
}
}
-
- /**
- * Creates a color from the information stored in the given
preference store.
- * Returns <code>null</code> if there is no such information available.
- */
- private Color createColor(IPreferenceStore store, String key,
Display display) {
-
- RGB rgb= null;
-
- if (store.contains(key)) {
-
- if (store.isDefault(key))
- rgb= PreferenceConverter.getDefaultColor(store, key);
- else
- rgb= PreferenceConverter.getColor(store, key);
-
- if (rgb != null)
- return new Color(display, rgb);
- }
-
- return null;
- }
-
+
/**
* @see ISelectionChangedListener#selectionChanged
*/
public void selectionChanged(SelectionChangedEvent event) {
- ISelection sel= event.getSelection();
+ ISelection sel = event.getSelection();
if (sel instanceof IStructuredSelection) {
- IStructuredSelection selection= (IStructuredSelection)sel;
- Object obj= selection.getFirstElement();
+ IStructuredSelection selection = (IStructuredSelection) sel;
+ Object obj = selection.getFirstElement();
if (obj instanceof ISourceReference) {
try {
- ISourceRange range =
((ISourceReference)obj).getSourceRange();
+ ISourceRange range = ((ISourceReference)
obj).getSourceRange();
if (range != null) {
setSelection(range, !isActivePart());
}
@@ -579,7 +252,7 @@
}
}
}
-
+
public void setSelection(ICElement element) {
if (element == null || element instanceof ITranslationUnit) {
@@ -589,8 +262,9 @@
* happened.
*/
return;
- } if (element instanceof ISourceReference) {
- ISourceReference reference= (ISourceReference) element;
+ }
+ if (element instanceof ISourceReference) {
+ ISourceReference reference = (ISourceReference) element;
// set hightlight range
setSelection(reference, true);
// set outliner selection
@@ -626,30 +300,29 @@
try {
IRegion alternateRegion = null;
- int start= element.getStartPos();
- int length= element.getLength();
+ int start = element.getStartPos();
+ int length = element.getLength();
// Sanity check sometimes the parser may throw wrong numbers.
if (start < 0 || length < 0) {
- start = 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());
+ alternateRegion =
getDocumentProvider().getDocument(getEditorInput()).getLineInformation(element.getStartLine());
if (alternateRegion != null) {
start = alternateRegion.getOffset();
length = alternateRegion.getLength();
}
}
setHighlightRange(start, length, moveCursor);
-
+
if (moveCursor) {
- start= element.getIdStartPos();
- length= element.getIdLength();
+ start = element.getIdStartPos();
+ length = element.getIdLength();
if (start == 0 && length == 0 && alternateRegion != null) {
start = alternateRegion.getOffset();
length = alternateRegion.getLength();
@@ -662,77 +335,70 @@
}
return;
} catch (IllegalArgumentException x) {
- } catch (BadLocationException e ) {
+ } catch (BadLocationException e) {
}
if (moveCursor)
resetHighlightRange();
- }
-
+ }
+
private boolean isActivePart() {
- IWorkbenchWindow window= getSite().getWorkbenchWindow();
- IPartService service= window.getPartService();
+ IWorkbenchWindow window = getSite().getWorkbenchWindow();
+ IPartService service = window.getPartService();
return (this == service.getActivePart());
}
-
+
public void dispose() {
-
- stopBracketHighlighting();
- stopLineHighlighting();
-
- if (fPaintManager != null) {
- fPaintManager.dispose();
- fPaintManager= null;
- }
+
if (fCEditorErrorTickUpdater != null) {
fCEditorErrorTickUpdater.setAnnotationModel(null);
- fCEditorErrorTickUpdater= null;
+ fCEditorErrorTickUpdater = null;
+ }
+ if (fBracketMatcher != null) {
+ fBracketMatcher.dispose();
+ fBracketMatcher = null;
}
-
super.dispose();
}
-
- protected void createActions()
- {
+
+ protected void createActions() {
super.createActions();
-
+
// Default text editing menu items
- IAction action= new
TextOperationAction(CEditorMessages.getResourceBundle(), "Comment.",
this, ITextOperationTarget.PREFIX); //$NON-NLS-1$
-
action.setActionDefinitionId(ICEditorActionDefinitionIds.COMMENT);
+ IAction action = new
TextOperationAction(CEditorMessages.getResourceBundle(), "Comment.",
this, ITextOperationTarget.PREFIX); //$NON-NLS-1$
+ action.setActionDefinitionId(ICEditorActionDefinitionIds.COMMENT);
setAction("Comment", action); //$NON-NLS-1$
markAsStateDependentAction("Comment", true); //$NON-NLS-1$
- action= new
TextOperationAction(CEditorMessages.getResourceBundle(), "Uncomment.",
this, ITextOperationTarget.STRIP_PREFIX); //$NON-NLS-1$
-
action.setActionDefinitionId(ICEditorActionDefinitionIds.UNCOMMENT);
+ action = new
TextOperationAction(CEditorMessages.getResourceBundle(), "Uncomment.",
this, ITextOperationTarget.STRIP_PREFIX); //$NON-NLS-1$
+
action.setActionDefinitionId(ICEditorActionDefinitionIds.UNCOMMENT);
setAction("Uncomment", action); //$NON-NLS-1$
markAsStateDependentAction("Uncomment", true); //$NON-NLS-1$
-
- action= new
TextOperationAction(CEditorMessages.getResourceBundle(), "Format.",
this, ISourceViewer.FORMAT); //$NON-NLS-1$
-
action.setActionDefinitionId(ICEditorActionDefinitionIds.FORMAT);
+
+ action = new
TextOperationAction(CEditorMessages.getResourceBundle(), "Format.",
this, ISourceViewer.FORMAT); //$NON-NLS-1$
+ action.setActionDefinitionId(ICEditorActionDefinitionIds.FORMAT);
setAction("Format", action); //$NON-NLS-1$
markAsStateDependentAction("Format", true); //$NON-NLS-1$
action = new
ContentAssistAction(CEditorMessages.getResourceBundle(),
"ContentAssistProposal.", this); //$NON-NLS-1$
action.setActionDefinitionId(ICEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
- setAction("ContentAssistProposal", action);
+ setAction("ContentAssistProposal", action);
markAsStateDependentAction("ContentAssistProposal", true);
//$NON-NLS-1$
-
- action = new
TextOperationAction(CEditorMessages.getResourceBundle(),
"ContentAssistTip.", this,
ISourceViewer.CONTENTASSIST_CONTEXT_INFORMATION); //$NON-NLS-1$
+
+ action = new
TextOperationAction(CEditorMessages.getResourceBundle(),
"ContentAssistTip.", this,
ISourceViewer.CONTENTASSIST_CONTEXT_INFORMATION); //$NON-NLS-1$
action.setActionDefinitionId(ICEditorActionDefinitionIds.CONTENT_ASSIST_CONTEXT_INFORMATION);
- setAction("ContentAssistTip", action);
+ setAction("ContentAssistTip", action);
-
- setAction("AddIncludeOnSelection", new
AddIncludeOnSelectionAction(this)); //$NON-NLS-1$
+ setAction("AddIncludeOnSelection", new
AddIncludeOnSelectionAction(this)); //$NON-NLS-1$
setAction("OpenOnSelection", new OpenOnSelectionAction(this));
-
- fSearchForReferencesAction= new
SearchForReferencesAction(getSelectionProvider());
+
+ fSearchForReferencesAction = new
SearchForReferencesAction(getSelectionProvider());
}
- public void editorContextMenuAboutToShow( IMenuManager menu )
- {
- super.editorContextMenuAboutToShow( menu );
-
+ public void editorContextMenuAboutToShow(IMenuManager menu) {
+ super.editorContextMenuAboutToShow(menu);
+
addGroup(menu, ITextEditorActionConstants.GROUP_EDIT,
IContextMenuConstants.GROUP_REORGANIZE);
addGroup(menu, ITextEditorActionConstants.GROUP_EDIT,
IContextMenuConstants.GROUP_GENERATE);
addGroup(menu, ITextEditorActionConstants.GROUP_EDIT,
IContextMenuConstants.GROUP_NEW);
@@ -743,25 +409,18 @@
// @@@ disabled for now until we get it to do something...
//addAction(menu, ITextEditorActionConstants.GROUP_EDIT,
"Format"); //$NON-NLS-1$
- MenuManager search= new MenuManager("Search",
IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
+ MenuManager search = new MenuManager("Search",
IContextMenuConstants.GROUP_SEARCH); //$NON-NLS-1$
menu.appendToGroup(ITextEditorActionConstants.GROUP_FIND, search);
-
if(SearchForReferencesAction.canActionBeAdded(getSelectionProvider().getSelection()))
{
+ if
(SearchForReferencesAction.canActionBeAdded(getSelectionProvider().getSelection()))
{
search.add(fSearchForReferencesAction);
}
-
+
addAction(menu, IContextMenuConstants.GROUP_GENERATE,
"ContentAssistProposal"); //$NON-NLS-1$
addAction(menu, IContextMenuConstants.GROUP_GENERATE,
"AddIncludeOnSelection"); //$NON-NLS-1$
addAction(menu, IContextMenuConstants.GROUP_GENERATE,
"OpenOnSelection"); //$NON-NLS-1$
}
/**
- * Internal interface for a cursor listener. I.e. aggregation
- * of mouse and key listener.
- */
- interface ICursorListener extends MouseListener, KeyListener {
- };
-
- /**
* The <code>AbstractTextEditor</code> implementation of this
* <code>IWorkbenchPart</code> method creates the vertical ruler and
* source viewer. Subclasses may extend.
@@ -772,472 +431,256 @@
*/
public void createPartControl(Composite parent) {
super.createPartControl(parent);
- fPaintManager= new PaintManager(getSourceViewer());
ISelectionChangedListener sListener = new
ISelectionChangedListener() {
- private Runnable fRunnable= new Runnable() {
- public void run() {
-
updateStatusField(CTextEditorActionConstants.STATUS_CURSOR_POS);
- }
- };
-
- private Display fDisplay;
-
- public void selectionChanged(SelectionChangedEvent event) {
- if (fDisplay == null)
- fDisplay= getSite().getShell().getDisplay();
- fDisplay.asyncExec(fRunnable);
+ private Runnable fRunnable = new Runnable() {
+ public void run() {
+
updateStatusField(CTextEditorActionConstants.STATUS_CURSOR_POS);
}
+ };
+
+ private Display fDisplay;
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ if (fDisplay == null)
+ fDisplay = getSite().getShell().getDisplay();
+ fDisplay.asyncExec(fRunnable);
+ }
};
-
getSelectionProvider().addSelectionChangedListener(sListener);
-
-
- initializeViewerColors(getSourceViewer());
-
- if (isLineHighlightingEnabled())
- startLineHighlighting();
- if (isProblemIndicationEnabled())
- startProblemIndication();
- if (isShowingPrintMarginEnabled())
- startShowingPrintMargin();
+
if (isTabConversionEnabled())
startTabConversion();
- if (isBracketHighlightingEnabled())
- startBracketHighlighting();
- if (isOverviewRulerVisible())
- showOverviewRuler();
-
-
}
-
- private Color getColor(String key) {
- RGB rgb= PreferenceConverter.getColor(getPreferenceStore(), key);
- return getColor(rgb);
- }
-
- private Color getColor(RGB rgb) {
- CTextTools textTools= CUIPlugin.getDefault().getTextTools();
- return textTools.getColorManager().getColor(rgb);
- }
-
+
private IMarker getNextError(int offset, boolean forward) {
-
- IMarker nextError= null;
-
- IDocument document=
getDocumentProvider().getDocument(getEditorInput());
- int endOfDocument= document.getLength();
- int distance= 0;
-
- IAnnotationModel model=
getDocumentProvider().getAnnotationModel(getEditorInput());
- Iterator e= model.getAnnotationIterator();
+
+ IMarker nextError = null;
+
+ IDocument document =
getDocumentProvider().getDocument(getEditorInput());
+ int endOfDocument = document.getLength();
+ int distance = 0;
+
+ IAnnotationModel model =
getDocumentProvider().getAnnotationModel(getEditorInput());
+ Iterator e = model.getAnnotationIterator();
while (e.hasNext()) {
- Annotation a= (Annotation) e.next();
+ Annotation a = (Annotation) e.next();
if (a instanceof CMarkerAnnotation) {
- MarkerAnnotation ma= (MarkerAnnotation) a;
- IMarker marker= ma.getMarker();
-
+ MarkerAnnotation ma = (MarkerAnnotation) a;
+ IMarker marker = ma.getMarker();
+
if (MarkerUtilities.isMarkerType(marker,
IMarker.PROBLEM)) {
- Position p= model.getPosition(a);
+ Position p = model.getPosition(a);
if (!p.includes(offset)) {
-
- int currentDistance= 0;
-
+
+ int currentDistance = 0;
+
if (forward) {
- currentDistance= p.getOffset() - offset;
+ currentDistance = p.getOffset() - offset;
if (currentDistance < 0)
- currentDistance= endOfDocument - offset
+ p.getOffset();
+ currentDistance = endOfDocument -
offset + p.getOffset();
} else {
- currentDistance= offset - p.getOffset();
+ currentDistance = offset - p.getOffset();
if (currentDistance < 0)
- currentDistance= offset + endOfDocument
- p.getOffset();
- }
-
- if (nextError == null || (currentDistance <
distance && currentDistance != 0)) {
- distance= currentDistance;
- if(distance == 0) distance = endOfDocument;
- nextError= marker;
+ currentDistance = offset +
endOfDocument - p.getOffset();
}
-
+ if (nextError == null || (currentDistance <
distance && currentDistance != 0)) {
+ distance = currentDistance;
+ if (distance == 0)
+ distance = endOfDocument;
+ nextError = marker;
+ }
}
}
-
}
}
-
return nextError;
}
-
+
public void gotoError(boolean forward) {
-
- ISelectionProvider provider= getSelectionProvider();
-
+
+ ISelectionProvider provider = getSelectionProvider();
+
if (fStatusLineClearer != null) {
provider.removeSelectionChangedListener(fStatusLineClearer);
- fStatusLineClearer= null;
+ fStatusLineClearer = null;
}
-
- ITextSelection s= (ITextSelection) provider.getSelection();
- IMarker nextError= getNextError(s.getOffset(), forward);
-
+
+ ITextSelection s = (ITextSelection) provider.getSelection();
+ IMarker nextError = getNextError(s.getOffset(), forward);
+
if (nextError != null) {
-
+
gotoMarker(nextError);
-
- IWorkbenchPage page= getSite().getPage();
-
- IViewPart view= view=
page.findView("org.eclipse.ui.views.TaskList"); //$NON-NLS-1$
+
+ IWorkbenchPage page = getSite().getPage();
+
+ IViewPart view = view =
page.findView("org.eclipse.ui.views.TaskList"); //$NON-NLS-1$
if (view instanceof TaskList) {
- StructuredSelection ss= new StructuredSelection(nextError);
+ StructuredSelection ss = new
StructuredSelection(nextError);
((TaskList) view).setSelection(ss, true);
}
-
+
getStatusLineManager().setErrorMessage(nextError.getAttribute(IMarker.MESSAGE,
"")); //$NON-NLS-1$
- fStatusLineClearer= new ISelectionChangedListener() {
+ fStatusLineClearer = new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
getSelectionProvider().removeSelectionChangedListener(fStatusLineClearer);
- fStatusLineClearer= null;
+ fStatusLineClearer = null;
getStatusLineManager().setErrorMessage("");
//$NON-NLS-1$
}
};
provider.addSelectionChangedListener(fStatusLineClearer);
-
+
} else {
-
+
getStatusLineManager().setErrorMessage(""); //$NON-NLS-1$
-
+
}
}
/*
* Get the dektop's StatusLineManager
*/
protected IStatusLineManager getStatusLineManager() {
- IEditorActionBarContributor contributor=
getEditorSite().getActionBarContributor();
+ IEditorActionBarContributor contributor =
getEditorSite().getActionBarContributor();
if (contributor instanceof EditorActionBarContributor) {
return ((EditorActionBarContributor)
contributor).getActionBars().getStatusLineManager();
}
return null;
}
-
- /**
- * LIneHighlighting manager
- */
- private void startLineHighlighting() {
- if (fLinePainter == null) {
- ISourceViewer sourceViewer= getSourceViewer();
- fLinePainter= new LinePainter(sourceViewer);
- fLinePainter.setHighlightColor(getColor(CURRENT_LINE_COLOR));
- fPaintManager.addPainter(fLinePainter);
- }
- }
-
- private void stopLineHighlighting() {
- if (fLinePainter != null) {
- fPaintManager.removePainter(fLinePainter);
- fLinePainter.deactivate(true);
- fLinePainter.dispose();
- fLinePainter= null;
- }
- }
-
- private boolean isLineHighlightingEnabled() {
- IPreferenceStore store= getPreferenceStore();
- return store.getBoolean(CURRENT_LINE);
- }
-
- private void startProblemIndication() {
- if (fProblemPainter == null) {
- fProblemPainter= new ProblemPainter(this, getSourceViewer());
-
fProblemPainter.setHighlightColor(getColor(PROBLEM_INDICATION_COLOR));
- fPaintManager.addPainter(fProblemPainter);
- }
- }
-
- private void stopProblemIndication() {
- if (fProblemPainter != null) {
- fPaintManager.removePainter(fProblemPainter);
- fProblemPainter.deactivate(true);
- fProblemPainter.dispose();
- fProblemPainter= null;
- }
- }
-
- private boolean isProblemIndicationEnabled() {
- IPreferenceStore store= getPreferenceStore();
- return store.getBoolean(PROBLEM_INDICATION);
- }
-
- private void startShowingPrintMargin() {
- if (fPrintMarginPainter == null) {
- fPrintMarginPainter= new PrintMarginPainter(getSourceViewer());
-
fPrintMarginPainter.setMarginRulerColor(getColor(PRINT_MARGIN_COLOR));
-
fPrintMarginPainter.setMarginRulerColumn(getPreferenceStore().getInt(PRINT_MARGIN_COLUMN));
- fPaintManager.addPainter(fPrintMarginPainter);
- }
- }
-
- private void stopShowingPrintMargin() {
- if (fPrintMarginPainter != null) {
- fPaintManager.removePainter(fPrintMarginPainter);
- fPrintMarginPainter.deactivate(true);
- fPrintMarginPainter.dispose();
- fPrintMarginPainter= null;
- }
- }
-
- private boolean isShowingPrintMarginEnabled() {
- IPreferenceStore store= getPreferenceStore();
- return store.getBoolean(PRINT_MARGIN);
- }
-
+
private void startTabConversion() {
if (fTabConverter == null) {
- fTabConverter= new TabConverter();
+ fTabConverter = new TabConverter();
fTabConverter.setNumberOfSpacesPerTab(getPreferenceStore().getInt(CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH));
- AdaptedSourceViewer asv= (AdaptedSourceViewer)
getSourceViewer();
+ AdaptedSourceViewer asv = (AdaptedSourceViewer)
getSourceViewer();
asv.addTextConverter(fTabConverter);
}
}
-
+
private void stopTabConversion() {
if (fTabConverter != null) {
- AdaptedSourceViewer asv= (AdaptedSourceViewer)
getSourceViewer();
+ AdaptedSourceViewer asv = (AdaptedSourceViewer)
getSourceViewer();
asv.removeTextConverter(fTabConverter);
- fTabConverter= null;
+ fTabConverter = null;
}
}
-
+
private boolean isTabConversionEnabled() {
- IPreferenceStore store= getPreferenceStore();
+ IPreferenceStore store = getPreferenceStore();
return store.getBoolean(SPACES_FOR_TABS);
}
-
- private void startBracketHighlighting() {
- if (fBracketPainter == null) {
- ISourceViewer sourceViewer= getSourceViewer();
- fBracketPainter= new BracketPainter(sourceViewer);
-
fBracketPainter.setHighlightColor(getColor(MATCHING_BRACKETS_COLOR));
- fPaintManager.addPainter(fBracketPainter);
- IPreferenceStore store= getPreferenceStore();
-
fBracketPainter.setHighlightStyle(store.getBoolean(MATCHING_BRACKETS_NOBOX));
- }
- }
-
- private void stopBracketHighlighting() {
- if (fBracketPainter != null) {
- fPaintManager.removePainter(fBracketPainter);
- fBracketPainter.deactivate(true);
- fBracketPainter.dispose();
- fBracketPainter= null;
- }
- }
-
- private boolean isBracketHighlightingEnabled() {
- IPreferenceStore store= getPreferenceStore();
- return store.getBoolean(MATCHING_BRACKETS);
- }
-
- private void setBracketHighlightingStyle() {
- IPreferenceStore store= getPreferenceStore();
- if(fBracketPainter != null) {
-
fBracketPainter.setHighlightStyle(store.getBoolean(MATCHING_BRACKETS_NOBOX));
- }
- }
interface ITextConverter {
void customizeDocumentCommand(IDocument document,
DocumentCommand command);
};
-
+
static class TabConverter implements ITextConverter {
-
- private String fTabString= "";
+
+ private String fTabString = "";
private int tabRatio = 0;
-
+
public void setNumberOfSpacesPerTab(int ratio) {
tabRatio = ratio;
- StringBuffer buffer= new StringBuffer();
- for (int i= 0; i < ratio; i++)
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < ratio; i++)
buffer.append(' ');
- fTabString= buffer.toString();
- }
-
+ fTabString = buffer.toString();
+ }
+
public void customizeDocumentCommand(IDocument document,
DocumentCommand command) {
- String text= command.text;
- StringBuffer buffer= new StringBuffer();
+ String text = command.text;
+ StringBuffer buffer = new StringBuffer();
final String TAB = "\t";
// create tokens including the tabs
StringTokenizer tokens = new StringTokenizer(text, TAB, true);
-
+
int charCount = 0;
- try{
+ try {
// get offset of insertion less start of line
// buffer to determine how many characters
// are already on this line and adjust tabs accordingly
- charCount = command.offset -
(document.getLineInformationOfOffset(command.offset).getOffset());
- } catch (Exception ex){
-
+ charCount = command.offset -
(document.getLineInformationOfOffset(command.offset).getOffset());
+ } catch (Exception ex) {
+
}
String nextToken = null;
int spaces = 0;
- while (tokens.hasMoreTokens()){
+ while (tokens.hasMoreTokens()) {
nextToken = tokens.nextToken();
- if (TAB.equals(nextToken)){
+ if (TAB.equals(nextToken)) {
spaces = tabRatio - (charCount % tabRatio);
-
- for (int i= 0; i < spaces; i++){
+
+ for (int i = 0; i < spaces; i++) {
buffer.append(' ');
- }
-
+ }
+
charCount += spaces;
} else {
buffer.append(nextToken);
- charCount += nextToken.length();
+ charCount += nextToken.length();
}
}
- command.text= buffer.toString();
+ command.text = buffer.toString();
}
};
-
+
/* Source code language to display */
- public final static String LANGUAGE_CPP= "CEditor.language.cpp";
- public final static String LANGUAGE_C= "CEditor.language.c";
-
-
- class AdaptedRulerLayout extends Layout {
-
- protected int fGap;
- protected AdaptedSourceViewer fAdaptedSourceViewer;
-
-
- protected AdaptedRulerLayout(int gap, AdaptedSourceViewer asv) {
- fGap= gap;
- fAdaptedSourceViewer= asv;
- }
-
- protected Point computeSize(Composite composite, int wHint, int
hHint, boolean flushCache) {
- Control[] children= composite.getChildren();
- Point s= children[children.length -
1].computeSize(SWT.DEFAULT, SWT.DEFAULT, flushCache);
- if (fAdaptedSourceViewer.isVerticalRulerVisible())
- s.x +=
fAdaptedSourceViewer.getVerticalRuler().getWidth() + fGap;
- return s;
- }
-
- protected void layout(Composite composite, boolean flushCache) {
- Rectangle clArea= composite.getClientArea();
- if (fAdaptedSourceViewer.isVerticalRulerVisible()) {
-
- StyledText textWidget=
fAdaptedSourceViewer.getTextWidget();
- Rectangle trim= textWidget.computeTrim(0, 0, 0, 0);
- int scrollbarHeight= trim.height;
-
- IVerticalRuler vr= fAdaptedSourceViewer.getVerticalRuler();
- int vrWidth=vr.getWidth();
-
- int orWidth= 0;
- if (fAdaptedSourceViewer.isOverviewRulerVisible()) {
- OverviewRuler or=
fAdaptedSourceViewer.getOverviewRuler();
- orWidth= or.getWidth();
- or.getControl().setBounds(clArea.width - orWidth,
scrollbarHeight, orWidth, clArea.height - 3*scrollbarHeight);
- }
-
- textWidget.setBounds(vrWidth + fGap, 0, clArea.width -
vrWidth - orWidth - 2*fGap, clArea.height);
- vr.getControl().setBounds(0, 0, vrWidth, clArea.height
- scrollbarHeight);
-
- } else {
- StyledText textWidget=
fAdaptedSourceViewer.getTextWidget();
- textWidget.setBounds(0, 0, clArea.width, clArea.height);
- }
- }
- };
-
+ public final static String LANGUAGE_CPP = "CEditor.language.cpp";
+ public final static String LANGUAGE_C = "CEditor.language.c";
+
/**
* Adapted source viewer for CEditor
*/
-
+
public class AdaptedSourceViewer extends SourceViewer implements
ITextViewerExtension {
-
+
private List fTextConverters;
private String fDisplayLanguage;
- private OverviewRuler fOverviewRuler;
- private boolean fIsOverviewRulerVisible;
-
- private IVerticalRuler fCachedVerticalRuler;
- private boolean fCachedIsVerticalRulerVisible;
-
-
- public AdaptedSourceViewer(Composite parent, IVerticalRuler
ruler, int styles, String language) {
- super(parent, ruler, styles);
-
+
+ public AdaptedSourceViewer(
+ Composite parent,
+ IVerticalRuler ruler,
+ int styles,
+ IOverviewRuler fOverviewRuler,
+ boolean isOverviewRulerShowing,
+ String language) {
+ super(parent, ruler, fOverviewRuler,
isOverviewRulerShowing, styles);
fDisplayLanguage = language;
- fCachedVerticalRuler= ruler;
- fCachedIsVerticalRulerVisible= (ruler != null);
- fOverviewRuler= new OverviewRuler(VERTICAL_RULER_WIDTH);
-
- delayedCreateControl(parent, styles);
}
/*
- * @see ISourceViewer#showAnnotations(boolean)
- */
- public void showAnnotations(boolean show) {
- fCachedIsVerticalRulerVisible= (show &&
fCachedVerticalRuler != null);
- super.showAnnotations(show);
- }
- /*
- public IContentAssistant getContentAssistant() {
- return fContentAssistant;
- } */
-
- /*
* @see ITextOperationTarget#doOperation(int)
*/
public void doOperation(int operation) {
-
+
if (getTextWidget() == null) {
return;
}
-
+
super.doOperation(operation);
}
-
- /*
- * @see ITextOperationTarget#canDoOperation(int)
- *
- public boolean canDoOperation(int operation) {
-
- if (getTextWidget() == null)
- return false;
-
- switch (operation) {
- case SHIFT_RIGHT:
- case SHIFT_LEFT:
- return isEditable() && fIndentChars != null &&
isBlockSelected();
- }
-
- return super.canDoOperation(operation);
- }*/
-
+
public void insertTextConverter(ITextConverter textConverter,
int index) {
throw new UnsupportedOperationException();
}
-
+
public void addTextConverter(ITextConverter textConverter) {
if (fTextConverters == null) {
- fTextConverters= new ArrayList(1);
+ fTextConverters = new ArrayList(1);
fTextConverters.add(textConverter);
} else if (!fTextConverters.contains(textConverter))
fTextConverters.add(textConverter);
}
-
+
public void removeTextConverter(ITextConverter textConverter) {
if (fTextConverters != null) {
fTextConverters.remove(textConverter);
if (fTextConverters.size() == 0)
- fTextConverters= null;
+ fTextConverters = null;
}
}
-
+
/*
* @see TextViewer#customizeDocumentCommand(DocumentCommand)
*/
@@ -1245,275 +688,19 @@
super.customizeDocumentCommand(command);
if (fTextConverters != null) {
for (Iterator e = fTextConverters.iterator(); e.hasNext();)
- ((ITextConverter)
e.next()).customizeDocumentCommand(getDocument(), command);
- }
- }
-
- public IVerticalRuler getVerticalRuler() {
- return fCachedVerticalRuler;
- }
-
- public boolean isVerticalRulerVisible() {
- return fCachedIsVerticalRulerVisible;
- }
-
- public OverviewRuler getOverviewRuler() {
- return fOverviewRuler;
- }
-
- /*
- * @see TextViewer#createControl(Composite, int)
- */
- protected void createControl(Composite parent, int styles) {
- // do nothing here
- }
-
- protected void delayedCreateControl(Composite parent, int styles) {
- //create the viewer
- super.createControl(parent, styles);
-
- Control control= getControl();
- if (control instanceof Composite) {
- Composite composite= (Composite) control;
- composite.setLayout(new AdaptedRulerLayout(GAP_SIZE,
this));
- fOverviewRuler.createControl(composite, this);
+ ((ITextConverter)
e.next()).customizeDocumentCommand(getDocument(), command);
}
}
-
- public void hideOverviewRuler() {
- fIsOverviewRulerVisible= false;
- Control control= getControl();
- if (control instanceof Composite) {
- Composite composite= (Composite) control;
- composite.layout();
- }
- }
-
- public void showOverviewRuler() {
- fIsOverviewRulerVisible= true;
- Control control= getControl();
- if (control instanceof Composite) {
- Composite composite= (Composite) control;
- composite.layout();
- }
- }
-
- public boolean isOverviewRulerVisible() {
- return fIsOverviewRulerVisible;
- }
-
- /*
- * @see ISourceViewer#setDocument(IDocument, IAnnotationModel,
int, int)
- */
- public void setDocument(IDocument document, IAnnotationModel
annotationModel, int visibleRegionOffset, int visibleRegionLength) {
- super.setDocument(document, annotationModel,
visibleRegionOffset, visibleRegionLength);
- fOverviewRuler.setModel(annotationModel);
- }
-
- /**
- * Invalidates the current presentation by sending an
initialization
- * event to all text listener.
- */
-/*
- public final void invalidateTextPresentation() {
- IDocument doc = getDocument();
- if(doc != null) {
- fireInputDocumentChanged(doc, doc);
- }
- }
-*/
+
public void setDisplayLanguage(String language) {
fDisplayLanguage = language;
}
-
+
public String getDisplayLanguage() {
return fDisplayLanguage;
}
- /**
- * Internal verify listener.
- */
- class TextVerifyListener implements VerifyListener {
-
- private boolean fForward= true;
-
- /**
- * Tells the listener to forward received events.
- */
- public void forward(boolean forward) {
- fForward= forward;
- }
-
- /*
- * @see VerifyListener#verifyText(VerifyEvent)
- */
- public void verifyText(VerifyEvent e) {
- if (fForward)
- handleVerifyEvent(e);
- }
- };
-
- /**
- * The viewer's manager of registered verify key listeners.
- * Uses batches rather than robust iterators because of
- * performance issues.
- */
- class VerifyKeyListenersManager implements VerifyKeyListener {
-
- class Batch {
- int index;
- VerifyKeyListener listener;
-
- public Batch(VerifyKeyListener l, int i) {
- listener= l;
- index= i;
- }
- };
-
- private List fListeners= new ArrayList();
- private List fBatched= new ArrayList();
- private Iterator fIterator;
-
- /*
- * @see VerifyKeyListener#verifyKey(VerifyEvent)
- */
- public void verifyKey(VerifyEvent event) {
- if (fListeners.isEmpty())
- return;
-
- fIterator= fListeners.iterator();
- while (fIterator.hasNext() && event.doit) {
- VerifyKeyListener listener= (VerifyKeyListener)
fIterator.next();
- listener.verifyKey(event);
- }
- fIterator= null;
-
- processBatchedRequests();
- }
-
- private void processBatchedRequests() {
- if (!fBatched.isEmpty()) {
- Iterator e= fBatched.iterator();
- while (e.hasNext()) {
- Batch batch= (Batch) e.next();
- insertListener(batch.listener, batch.index);
- }
- fBatched.clear();
- }
- }
-
- /**
- * Returns the number of registered verify key listeners.
- */
- public int numberOfListeners() {
- return fListeners.size();
- }
-
- /**
- * Inserts the given listener at the given index or moves it
- * to that index.
- *
- * @param listener the listener to be inserted
- * @param index the index of the listener or -1 for remove
- */
- public void insertListener(VerifyKeyListener listener, int
index) {
-
- if (index == -1) {
- removeListener(listener);
- } else if (listener != null) {
-
- if (fIterator != null) {
-
- fBatched.add(new Batch(listener, index));
-
- } else {
-
- int idx= fListeners.indexOf(listener);
- if (idx != index) {
-
- if (idx != -1)
- fListeners.remove(idx);
-
- if (index > fListeners.size())
- fListeners.add(listener);
- else
- fListeners.add(index, listener);
- }
-
- if (fListeners.size() == 1)
- install();
- }
- }
- }
-
- /**
- * Removes the given listener.
- *
- * @param listener the listener to be removed
- */
- public void removeListener(VerifyKeyListener listener) {
- if (listener == null)
- return;
-
- if (fIterator != null) {
-
- fBatched.add(new Batch(listener, -1));
-
- } else {
-
- fListeners.remove(listener);
- if (fListeners.isEmpty())
- uninstall();
-
- }
- }
-
- /**
- * Installs this manager.
- */
- private void install() {
- getTextWidget().addVerifyKeyListener(this);
- }
-
- /**
- * Uninstalls this manager.
- */
- private void uninstall() {
- StyledText textWidget = getTextWidget();
- if (textWidget != null && !textWidget.isDisposed()) {
- textWidget.removeVerifyKeyListener(this);
- }
- }
- };
-
- /** The viewer's manager of verify key listeners */
- private VerifyKeyListenersManager fVerifyKeyListenersManager=
new VerifyKeyListenersManager();
-
- /*
- * @see
ITextViewerExtension#appendVerifyKeyListener(VerifyKeyListener)
- */
- public void appendVerifyKeyListener(VerifyKeyListener listener) {
- int index= fVerifyKeyListenersManager.numberOfListeners();
- fVerifyKeyListenersManager.insertListener(listener, index);
- }
-
- /*
- * @see
ITextViewerExtension#prependVerifyKeyListener(VerifyKeyListener)
- */
- public void prependVerifyKeyListener(VerifyKeyListener listener) {
- fVerifyKeyListenersManager.insertListener(listener, 0);
-
- }
-
- /*
- * @see
ITextViewerExtension#removeVerifyKeyListener(VerifyKeyListener)
- */
- public void removeVerifyKeyListener(VerifyKeyListener listener) {
- fVerifyKeyListenersManager.removeListener(listener);
- }
-
};
-
/*
* @see AbstractTextEditor#createSourceViewer(Composite,
IVerticalRuler, int)
*/
@@ -1521,146 +708,80 @@
// Figure out if this is a C or C++ source file
String filename = getEditorInput().getName();
boolean c_file = filename.endsWith(".c");
-
- if (!c_file && filename.endsWith(".h")){
+
+ if (!c_file && filename.endsWith(".h")) {
// ensure that this .h file is part of a C project & not a
CPP project
-
+
IFile file = getInputFile();
if (file != null) {
IProject project = file.getProject();
c_file = !CoreModel.getDefault().hasCCNature(project);
}
}
+ fAnnotationAccess = createAnnotationAccess();
+ ISharedTextColors sharedColors =
EditorsPlugin.getDefault().getSharedTextColors();
- return new AdaptedSourceViewer(parent, ruler, styles, c_file ?
LANGUAGE_C : LANGUAGE_CPP);
- }
-
- /*
- * @see AbstractTextEditor#affectsTextPresentation(PropertyChangeEvent)
- * Pulled in from 2.0
- */
- protected boolean affectsTextPresentation(PropertyChangeEvent event) {
- String p= event.getProperty();
-
- boolean affects=MATCHING_BRACKETS_COLOR.equals(p) ||
- CURRENT_LINE_COLOR.equals(p) ||
- PROBLEM_INDICATION_COLOR.equals(p);
- CTextTools textTools= CUIPlugin.getDefault().getTextTools();
- affects |= textTools.affectsBehavior(event);
-
- return affects ? affects : super.affectsTextPresentation(event);
+ fOverviewRuler = new OverviewRuler(fAnnotationAccess,
VERTICAL_RULER_WIDTH, sharedColors);
+ Iterator e =
fAnnotationPreferences.getAnnotationPreferences().iterator();
+ while (e.hasNext()) {
+ AnnotationPreference preference = (AnnotationPreference)
e.next();
+ if (preference.contributesToHeader())
+
fOverviewRuler.addHeaderAnnotationType(preference.getAnnotationType());
+ }
+
+ ISourceViewer sourceViewer =
+ new AdaptedSourceViewer(
+ parent,
+ ruler,
+ styles,
+ fOverviewRuler,
+ isOverviewRulerVisible(),
+ c_file ? LANGUAGE_C : LANGUAGE_CPP);
+ fSourceViewerDecorationSupport =
+ new SourceViewerDecorationSupport(sourceViewer,
fOverviewRuler, fAnnotationAccess, sharedColors);
+ configureSourceViewerDecorationSupport();
+ return sourceViewer;
}
/**
- * Creates a new line number ruler column that is appropriately
initialized.
- */
- protected IVerticalRulerColumn createLineNumberRulerColumn() {
- fLineNumberRulerColumn= new LineNumberRulerColumn();
- initializeLineNumberRulerColumn(fLineNumberRulerColumn);
- return fLineNumberRulerColumn;
- }
-
- /*
- * @see AbstractTextEditor#createVerticalRuler()
- */
- protected IVerticalRuler createVerticalRuler() {
- CompositeRuler ruler= new CompositeRuler();
- ruler.addDecorator(0, new
AnnotationRulerColumn(VERTICAL_RULER_WIDTH));
- if (isLineNumberRulerVisible())
- ruler.addDecorator(1, createLineNumberRulerColumn());
- return ruler;
+ * Creates the annotation access for this editor.
+ * @return the created annotation access
+ */
+ protected IAnnotationAccess createAnnotationAccess() {
+ return new DefaultMarkerAnnotationAccess(fAnnotationPreferences);
+ }
+
+ protected void configureSourceViewerDecorationSupport() {
+ Iterator e =
fAnnotationPreferences.getAnnotationPreferences().iterator();
+ while (e.hasNext())
+
fSourceViewerDecorationSupport.setAnnotationPreference((AnnotationPreference)
e.next());
+ fSourceViewerDecorationSupport.setAnnotationPainterPreferenceKeys(
+ DefaultMarkerAnnotationAccess.UNKNOWN,
+ TextEditorPreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR,
+ TextEditorPreferenceConstants.EDITOR_UNKNOWN_INDICATION,
+
TextEditorPreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER,
+ 0);
+
+
fSourceViewerDecorationSupport.setCharacterPairMatcher(fBracketMatcher);
+
fSourceViewerDecorationSupport.setMatchingCharacterPainterPreferenceKeys(MATCHING_BRACKETS,
MATCHING_BRACKETS_COLOR);
+
+ fSourceViewerDecorationSupport.setCursorLinePainterPreferenceKeys(
+ TextEditorPreferenceConstants.EDITOR_CURRENT_LINE,
+ TextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR);
+ fSourceViewerDecorationSupport.setMarginPainterPreferenceKeys(
+ TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN,
+ TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR,
+ TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN);
+
fSourceViewerDecorationSupport.setSymbolicFontName(getFontPropertyPreferenceKey());
}
-
- /**
- * Initializes the given line number ruler column from the
preference store.
- * @param rulerColumn the ruler column to be initialized
- */
- protected void
initializeLineNumberRulerColumn(LineNumberRulerColumn rulerColumn) {
- CTextTools textTools= CUIPlugin.getDefault().getTextTools();
- IColorManager manager= textTools.getColorManager();
-
- IPreferenceStore store= getPreferenceStore();
- if (store != null) {
-
- RGB rgb= null;
- // foreground color
- if (store.contains(LINE_NUMBER_COLOR)) {
- if (store.isDefault(LINE_NUMBER_COLOR))
- rgb= PreferenceConverter.getDefaultColor(store,
LINE_NUMBER_COLOR);
- else
- rgb= PreferenceConverter.getColor(store,
LINE_NUMBER_COLOR);
- }
- rulerColumn.setForeground(manager.getColor(rgb));
-
-
- rgb= null;
- // background color
- if
(!store.getBoolean(PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
- if (store.contains(PREFERENCE_COLOR_BACKGROUND)) {
- if (store.isDefault(PREFERENCE_COLOR_BACKGROUND))
- rgb= PreferenceConverter.getDefaultColor(store,
PREFERENCE_COLOR_BACKGROUND);
- else
- rgb= PreferenceConverter.getColor(store,
PREFERENCE_COLOR_BACKGROUND);
- }
- }
- rulerColumn.setBackground(manager.getColor(rgb));
- }
- }
-
- /**
- * Shows the line number ruler column.
- */
- private void showLineNumberRuler() {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.addDecorator(1, createLineNumberRulerColumn());
- }
- }
-
- /**
- * Hides the line number ruler column.
- */
- private void hideLineNumberRuler() {
- IVerticalRuler v= getVerticalRuler();
- if (v instanceof CompositeRuler) {
- CompositeRuler c= (CompositeRuler) v;
- c.removeDecorator(1);
- }
- }
-
- /**
- * Return whether the line number ruler column should be
- * visible according to the preference store settings.
- * @return <code>true</code> if the line numbers should be visible
- */
- private boolean isLineNumberRulerVisible() {
- IPreferenceStore store= getPreferenceStore();
- return store.getBoolean(LINE_NUMBER_RULER);
- }
-
- private void showOverviewRuler() {
- AdaptedSourceViewer asv= (AdaptedSourceViewer) getSourceViewer();
- asv.showOverviewRuler();
- }
-
- private void hideOverviewRuler() {
- AdaptedSourceViewer asv= (AdaptedSourceViewer) getSourceViewer();
- asv.hideOverviewRuler();
- }
-
- protected boolean isOverviewRulerVisible() {
- IPreferenceStore store= getPreferenceStore();
- return store.getBoolean(OVERVIEW_RULER);
- }
-
+
/** Outliner context menu Id */
protected String fOutlinerContextMenuId;
-
+
/**
* Sets the outliner's context menu ID.
*/
protected void setOutlinerContextMenuId(String menuId) {
- fOutlinerContextMenuId= menuId;
+ fOutlinerContextMenuId = menuId;
}
}
Index: src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
===================================================================
RCS file:
/home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties,v
retrieving revision 1.3
diff -u -r1.3 CEditorMessages.properties
--- src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
10 Apr 2003 19:25:49 -0000 1.3
+++ src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
21 Apr 2003 16:58:55 -0000
@@ -19,12 +19,9 @@
ClassFileMarkerAnnotationModel.error.isAffected=ClassFileMarkerAnnotationModel.isAffected
ClassFileMarkerAnnotationModel.error.resourceChanged=ClassFileMarkerAnnotationModel.resourceChanged
-CEditor.error.saving.message1=File has been deleted.
-CEditor.error.saving.message2=Could not save file.
-CEditor.error.saving.message3=Could not save file.
-CEditor.error.saving.title1=Cannot Save
-CEditor.error.saving.title2=Save Problems
-CEditor.error.saving.title3=Save Problems
+CEditor.error.saving.message=Save could not be completed. {0}
+CEditor.error.saving.title=Problems During Save As...
+
CEditorPreferencePage.description= C Editor Preferences
DeleteISourceManipulations.description=Delete the selected element in
the editor
Index: src/org/eclipse/cdt/internal/ui/editor/IPainter.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/IPainter.java
diff -N src/org/eclipse/cdt/internal/ui/editor/IPainter.java
--- src/org/eclipse/cdt/internal/ui/editor/IPainter.java 26 Jun 2002
20:55:44 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-public interface IPainter {
-
- /** Paint reasons */
- int SELECTION= 0;
- int TEXT_CHANGE= 1;
- int KEY_STROKE= 2;
- int MOUSE_BUTTON= 4;
- int INTERNAL= 8;
-
-
- void dispose();
-
- void paint(int reason);
-
- void deactivate(boolean redraw);
-
- void setPositionManager(IPositionManager manager);
-}
-
Index: src/org/eclipse/cdt/internal/ui/editor/LinePainter.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/LinePainter.java
diff -N src/org/eclipse/cdt/internal/ui/editor/LinePainter.java
--- src/org/eclipse/cdt/internal/ui/editor/LinePainter.java 26 Jun
2002 20:55:44 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,141 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.swt.custom.LineBackgroundEvent;
-import org.eclipse.swt.custom.LineBackgroundListener;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.StyledTextContent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-
-import org.eclipse.jface.text.source.ISourceViewer;
-
-
-public class LinePainter implements IPainter, LineBackgroundListener {
-
- private StyledText fTextWidget;
- private Color fHighlightColor;
- private int[] fLine= { -1, -1 };
- private boolean fIsActive= false;
-
-
- public LinePainter(ISourceViewer sourceViewer) {
- fTextWidget= sourceViewer.getTextWidget();
- }
-
- public void setHighlightColor(Color highlightColor) {
- fHighlightColor= highlightColor;
- }
-
- /*
- * @see LineBackgroundListener#lineGetBackground(LineBackgroundEvent)
- */
- public void lineGetBackground(LineBackgroundEvent event) {
- /* Don't use cached line information because of batched
redrawing events. */
-
- if (fTextWidget != null) {
-
-
- int caret= fTextWidget.getCaretOffset();
- int length= event.lineText.length();
-
- if (event.lineOffset <= caret && caret <= event.lineOffset
+ length && fIsActive) {
- StyledTextContent content= fTextWidget.getContent();
- Point p= fTextWidget.getSelectionRange();
- if(content.getLineAtOffset(caret) ==
content.getLineAtOffset(p.x)) {
- event.lineBackground= fHighlightColor;
- } else {
- event.lineBackground= fTextWidget.getBackground();
- }
- }
- else
- event.lineBackground= fTextWidget.getBackground();
- }
- }
-
- private void updateHighlightLine() {
- StyledTextContent content= fTextWidget.getContent();
-
-
- int offset= fTextWidget.getCaretOffset();
- int length= content.getCharCount();
- if (offset > length)
- offset= length;
-
- int lineNumber= content.getLineAtOffset(offset);
- fLine[0]= content.getOffsetAtLine(lineNumber);
-
- try {
- fLine[1]= content.getOffsetAtLine(lineNumber + 1);
- } catch (IllegalArgumentException x) {
- fLine[1]= -1;
- }
- }
-
- private void clearHighlightLine() {
- if (fLine[0] <= fTextWidget.getCharCount())
- drawHighlightLine();
- }
-
- private void drawHighlightLine() {
- if (fLine[1] >= fTextWidget.getCharCount())
- fLine[1]= -1;
-
- if (fLine[1] == -1) {
-
- Point upperLeft= fTextWidget.getLocationAtOffset(fLine[0]);
- int width= fTextWidget.getClientArea().width;
- int height= fTextWidget.getLineHeight();
- fTextWidget.redraw(upperLeft.x, upperLeft.y, width, height,
false);
-
- } else {
- fTextWidget.redrawRange(fLine[0], fLine[1] - fLine[0], true);
- }
- }
-
- /*
- * @see IPainter#deactivate(boolean)
- */
- public void deactivate(boolean redraw) {
- if (fIsActive) {
- fIsActive= false;
- fTextWidget.removeLineBackgroundListener(this);
- if (redraw)
- drawHighlightLine();
- }
- }
-
- /*
- * @see IPainter#dispose()
- */
- public void dispose() {
- fTextWidget= null;
- }
-
- /*
- * @see IPainter#paint(int)
- */
- public void paint(int reason) {
- if (!fIsActive) {
- fIsActive= true;
- fTextWidget.addLineBackgroundListener(this);
- } else if (fLine[0] != -1) {
- clearHighlightLine();
- }
-
- updateHighlightLine();
-
- drawHighlightLine();
- }
-
- /*
- * @see IPainter#setPositionManager(IPositionManager)
- */
- public void setPositionManager(IPositionManager manager) {
- }
-}
-
Index: src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java
diff -N src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java
--- src/org/eclipse/cdt/internal/ui/editor/OverviewRuler.java 29 Oct
2002 21:40:58 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,498 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-
-
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.GC;
-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.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.cdt.internal.ui.text.CTextTools;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModelListener;
-
-
-
-/**
- *
- */
-public class OverviewRuler {
-
- /**
- * Internal listener class.
- */
- class InternalListener implements ITextListener,
IAnnotationModelListener {
-
- /*
- * @see ITextListener#textChanged
- */
- public void textChanged(TextEvent e) {
- if (fTextViewer != null && e.getDocumentEvent() == null &&
e.getViewerRedrawState()) {
- // handle only changes of visible document
- redraw();
- }
- }
-
- /*
- * @see IAnnotationModelListener#modelChanged(IAnnotationModel)
- */
- public void modelChanged(IAnnotationModel model) {
- update();
- }
- }
-
- /**
- * Filters problems based on their types.
- */
- class FilterIterator implements Iterator {
-
- private Iterator fIterator;
- private int fType;
- private Annotation fNext;
-
- public FilterIterator(int type) {
- fType= type;
- if (fModel != null) {
- fIterator= fModel.getAnnotationIterator();
- skip();
- }
- }
-
- private void skip() {
- while (fIterator.hasNext()) {
- fNext= (Annotation) fIterator.next();
- int type= getType(fNext);
- if ((fType == ALL && type != UNKNOWN) || fType == type)
- return;
- }
- fNext= null;
- }
-
- /*
- * @see Iterator#hasNext()
- */
- public boolean hasNext() {
- return fNext != null;
- }
- /*
- * @see Iterator#next()
- */
- public Object next() {
- try {
- return fNext;
- } finally {
- if (fModel != null)
- skip();
- }
- }
- /*
- * @see Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
-
-
-
- /** Problem types */
- private static final int ALL= -1;
- private static final int COMPILE_WARNING= 0;
- private static final int COMPILE_ERROR= 1;
- private static final int TEMPORARY= 2;
- private static final int UNKNOWN= 4;
-
- /** Color table */
- private static final RGB[][] COLORS= new RGB[][] {
- /* fill */
/* stroke */
- /* warning */ { new RGB(248, 218, 114), new RGB(139, 109, 7) },
- /* error */ { new RGB(255, 140, 140), new RGB(255, 0 ,0) },
- /* temp */ { new RGB(240, 230, 230), new RGB(200, 100, 100) }
- };
-
- /** drawing layers */
- private static final int[] LAYERS= new int[] { COMPILE_WARNING,
TEMPORARY, COMPILE_ERROR };
-
- private static final int INSET= 2;
- private static final int PROBLEM_HEIGHT_MIN= 4;
- private static boolean PROBLEM_HEIGHT_SCALABLE= false;
-
-
-
- /** The model of the overview ruler */
- protected IAnnotationModel fModel;
- /** The view to which this ruler is connected */
- protected ITextViewer fTextViewer;
- /** The ruler's canvas */
- private Canvas fCanvas;
- /** The drawable for double buffering */
- private Image fBuffer;
- /** The internal listener */
- private InternalListener fInternalListener= new InternalListener();
- /** The width of this vertical ruler */
- private int fWidth;
- /** The hit detection cursor */
- private Cursor fHitDetectionCursor;
- /** The last cursor */
- private Cursor fLastCursor;
-
-
- /**
- * Constructs a vertical ruler with the given width.
- *
- * @param width the width of the vertical ruler
- */
- public OverviewRuler(int width) {
- fWidth= width;
- }
-
- public Control getControl() {
- return fCanvas;
- }
-
- public int getWidth() {
- return fWidth;
- }
-
- protected int getType(Annotation annotation) {
- if (annotation instanceof IProblemAnnotation) {
- IProblemAnnotation pa= (IProblemAnnotation) annotation;
- //if (!pa.isRelevant())
- // return UNKNOWN;
- if (pa.isTemporaryProblem())
- return TEMPORARY;
- if (pa.isError())
- return COMPILE_ERROR;
- if (pa.isWarning())
- return COMPILE_WARNING;
- }
-
- return UNKNOWN;
- }
-
- public void setModel(IAnnotationModel model) {
- if (model != fModel || model != null) {
-
- if (fModel != null)
- fModel.removeAnnotationModelListener(fInternalListener);
-
- fModel= model;
-
- if (fModel != null)
- fModel.addAnnotationModelListener(fInternalListener);
-
- update();
- }
- }
-
- public Control createControl(Composite parent, ITextViewer
textViewer) {
-
- fTextViewer= textViewer;
-
- fHitDetectionCursor= new Cursor(parent.getDisplay(),
SWT.CURSOR_HAND);
- fCanvas= new Canvas(parent, SWT.NO_BACKGROUND);
-
- fCanvas.addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent event) {
- if (fTextViewer != null)
- doubleBufferPaint(event.gc);
- }
- });
-
- fCanvas.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent event) {
- handleDispose();
- fTextViewer= null;
- }
- });
-
- fCanvas.addMouseListener(new MouseAdapter() {
- public void mouseDown(MouseEvent event) {
- handleMouseDown(event);
- }
- });
-
- fCanvas.addMouseMoveListener(new MouseMoveListener() {
- public void mouseMove(MouseEvent event) {
- handleMouseMove(event);
- }
- });
-
- if (fTextViewer != null)
- fTextViewer.addTextListener(fInternalListener);
-
- return fCanvas;
- }
-
- /**
- * Disposes the ruler's resources.
- */
- protected void handleDispose() {
-
- if (fTextViewer != null) {
- fTextViewer.removeTextListener(fInternalListener);
- fTextViewer= null;
- }
-
- if (fModel != null)
- fModel.removeAnnotationModelListener(fInternalListener);
-
- if (fBuffer != null) {
- fBuffer.dispose();
- fBuffer= null;
- }
-
- if (fHitDetectionCursor != null) {
- fHitDetectionCursor.dispose();
- fHitDetectionCursor= null;
- }
- }
-
- /**
- * Double buffer drawing.
- */
- protected void doubleBufferPaint(GC dest) {
-
- Point size= fCanvas.getSize();
-
- if (size.x <= 0 || size.y <= 0)
- return;
-
- if (fBuffer != null) {
- Rectangle r= fBuffer.getBounds();
- if (r.width != size.x || r.height != size.y) {
- fBuffer.dispose();
- fBuffer= null;
- }
- }
- if (fBuffer == null)
- fBuffer= new Image(fCanvas.getDisplay(), size.x, size.y);
-
- GC gc= new GC(fBuffer);
- try {
- gc.setBackground(fCanvas.getBackground());
- gc.fillRectangle(0, 0, size.x, size.y);
- doPaint(gc);
- } finally {
- gc.dispose();
- }
-
- dest.drawImage(fBuffer, 0, 0);
- }
-
- private Color getColor(RGB rgb) {
- CTextTools textTools= CUIPlugin.getDefault().getTextTools();
- return textTools.getColorManager().getColor(rgb);
- }
-
- private void doPaint(GC gc) {
-
- if (fTextViewer == null)
- return;
-
- Rectangle r= new Rectangle(0, 0, 0, 0);
- int yy, hh= PROBLEM_HEIGHT_MIN;
-
-
- IDocument document= fTextViewer.getDocument();
- IRegion visible= fTextViewer.getVisibleRegion();
-
- StyledText textWidget= fTextViewer.getTextWidget();
- int maxLines= textWidget.getLineCount();
-
- Point size= fCanvas.getSize();
- int writable= maxLines * textWidget.getLineHeight();
- if (size.y > writable)
- size.y= writable;
-
- for (int l= 0 ; l < LAYERS.length; l++) {
-
- Iterator e= new FilterIterator(LAYERS[l]);
- Color fill= getColor(COLORS[LAYERS[l]][0]);
- Color stroke= getColor(COLORS[LAYERS[l]][1]);
-
- for (int i= 0; e.hasNext(); i++) {
-
- Annotation a= (Annotation) e.next();
- Position p= fModel.getPosition(a);
-
- if (!p.overlapsWith(visible.getOffset(),
visible.getLength()))
- continue;
-
- int problemOffset= Math.max(p.getOffset(),
visible.getOffset());
- int problemEnd= Math.min(p.getOffset() + p.getLength(),
visible.getOffset() + visible.getLength());
- int problemLength= problemEnd - problemOffset;
-
- try {
-
- int startLine=
textWidget.getLineAtOffset(problemOffset - visible.getOffset());
- yy= (startLine * size.y) / maxLines;
-
- if (PROBLEM_HEIGHT_SCALABLE) {
- int numbersOfLines=
document.getNumberOfLines(problemOffset, problemLength);
- hh= (numbersOfLines * size.y) / maxLines;
- if (hh < PROBLEM_HEIGHT_MIN)
- hh= PROBLEM_HEIGHT_MIN;
- }
-
- if (fill != null) {
- gc.setBackground(fill);
- gc.fillRectangle(INSET, yy, size.x-(2*INSET), hh);
- }
-
- if (stroke != null) {
- gc.setForeground(stroke);
- r.x= INSET;
- r.y= yy;
- r.width= size.x - (2 * INSET) - 1;
- r.height= hh;
- gc.setLineWidth(1);
- gc.drawRectangle(r);
- }
- } catch (BadLocationException x) {
- }
- }
- }
- }
-
-
- /**
- * Thread-safe implementation.
- * Can be called from any thread.
- */
- public void update() {
- if (fCanvas != null && !fCanvas.isDisposed()) {
- Display d= fCanvas.getDisplay();
- if (d != null) {
- d.asyncExec(new Runnable() {
- public void run() {
- redraw();
- }
- });
- }
- }
- }
-
- /**
- * Redraws the overview ruler.
- */
- protected void redraw() {
- if (fCanvas != null && !fCanvas.isDisposed()) {
- GC gc= new GC(fCanvas);
- doubleBufferPaint(gc);
- gc.dispose();
- }
- }
-
- private int[] toLineNumbers(int y_coordinate) {
-
- IRegion visible= fTextViewer.getVisibleRegion();
- int lineNumber= 0;
- try {
- lineNumber=
fTextViewer.getDocument().getLineOfOffset(visible.getOffset());
- } catch (BadLocationException x) {
- }
-
- StyledText textWidget= fTextViewer.getTextWidget();
- int maxLines= textWidget.getContent().getLineCount();
-
- Point size= fCanvas.getSize();
- int writable= maxLines * textWidget.getLineHeight();
- if (size.y > writable)
- size.y= writable;
-
- int[] lines= new int[2];
-
- int pixel= Math.max(y_coordinate - 1, 0);
- lines[0]= lineNumber + (pixel * maxLines) / size.y;
-
- pixel= Math.min(size.y, y_coordinate + 1);
- lines[1]= lineNumber + (pixel * maxLines) / size.y;
-
- return lines;
- }
-
- private Position getProblemPositionAt(int[] lineNumbers) {
-
- Position found= null;
-
- try {
- IDocument d= fTextViewer.getDocument();
- IRegion line= d.getLineInformation(lineNumbers[0]);
- int start= line.getOffset();
-
- line= d.getLineInformation(lineNumbers[lineNumbers.length -
1]);
- int end= line.getOffset() + line.getLength();
-
- Iterator e= new FilterIterator(ALL);
- while (e.hasNext()) {
- Annotation a= (Annotation) e.next();
- Position p= fModel.getPosition(a);
- if (start <= p.getOffset() && p.getOffset() < end) {
- if (found == null || p.getOffset() < found.getOffset())
- found= p;
- }
- }
-
- } catch (BadLocationException x) {
- }
-
- return found;
- }
-
- protected void handleMouseDown(MouseEvent event) {
- if (fTextViewer != null) {
- int[] lines= toLineNumbers(event.y);
- Position p= getProblemPositionAt(lines);
- if (p != null) {
- fTextViewer.revealRange(p.getOffset(), p.getLength());
- fTextViewer.setSelectedRange(p.getOffset(), p.getLength());
- }
- fTextViewer.getTextWidget().setFocus();
- }
- }
-
- protected void handleMouseMove(MouseEvent event) {
- if (fTextViewer != null) {
- int[] lines= toLineNumbers(event.y);
- Position p= getProblemPositionAt(lines);
- Cursor cursor= (p != null ? fHitDetectionCursor : null);
- if (cursor != fLastCursor) {
- fCanvas.setCursor(cursor);
- fLastCursor= cursor;
- }
- }
- }
-}
Index: src/org/eclipse/cdt/internal/ui/editor/PaintManager.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/PaintManager.java
diff -N src/org/eclipse/cdt/internal/ui/editor/PaintManager.java
--- src/org/eclipse/cdt/internal/ui/editor/PaintManager.java 16 Oct
2002 20:13:45 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,257 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.widgets.Control;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IPositionUpdater;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-
-
-public final class PaintManager implements KeyListener, MouseListener,
ISelectionChangedListener, ITextListener, ITextInputListener {
-
- static class PositionManager implements IPositionManager {
-
- private IDocument fDocument;
- private IPositionUpdater fPositionUpdater;
- private String fCategory;
-
- public PositionManager() {
- fCategory= getClass().getName() + hashCode();
- fPositionUpdater= new DefaultPositionUpdater(fCategory);
- }
-
- public void install(IDocument document) {
- fDocument= document;
- fDocument.addPositionCategory(fCategory);
- fDocument.addPositionUpdater(fPositionUpdater);
- }
-
- public void dispose() {
- uninstall(fDocument);
- }
-
- public void uninstall(IDocument document) {
- if (document == fDocument && document != null) {
- try {
- fDocument.removePositionUpdater(fPositionUpdater);
- fDocument.removePositionCategory(fCategory);
- } catch (BadPositionCategoryException x) {
- // should not happen
- }
- fDocument= null;
- }
- }
-
- /*
- * @see IPositionManager#addManagedPosition(Position)
- */
- public void addManagedPosition(Position position) {
- try {
- fDocument.addPosition(fCategory, position);
- } catch (BadPositionCategoryException x) {
- // should not happen
- } catch (BadLocationException x) {
- // should not happen
- }
- }
-
- /*
- * @see IPositionManager#removeManagedPosition(Position)
- */
- public void removeManagedPosition(Position position) {
- try {
- fDocument.removePosition(fCategory, position);
- } catch (BadPositionCategoryException x) {
- // should not happen
- }
- }
- };
-
-
- private List fPainters= new ArrayList(2);
- private PositionManager fManager;
- protected ISourceViewer fSourceViewer;
- protected boolean fTextChanged= false;
- private boolean fAutoRepeat= false;
-
-
- public PaintManager(ISourceViewer sourceViewer) {
- fSourceViewer= sourceViewer;
- }
-
- public void addPainter(IPainter painter) {
- if (!fPainters.contains(painter)) {
- fPainters.add(painter);
- if (fPainters.size() == 1)
- install();
- painter.setPositionManager(fManager);
- painter.paint(IPainter.INTERNAL);
- }
- }
-
- public void removePainter(IPainter painter) {
- if (fPainters.remove(painter))
- painter.setPositionManager(null);
- if (fPainters.size() == 0)
- dispose();
- }
-
- private void install() {
-
- fManager= new PositionManager();
- fManager.install(fSourceViewer.getDocument());
-
- fSourceViewer.addTextInputListener(this);
-
- ISelectionProvider provider= fSourceViewer.getSelectionProvider();
- provider.addSelectionChangedListener(this);
-
- fSourceViewer.addTextListener(this);
-
- StyledText text= fSourceViewer.getTextWidget();
- text.addKeyListener(this);
- text.addMouseListener(this);
- }
-
- public void dispose() {
-
- if (fManager != null) {
- fManager.dispose();
- fManager= null;
- }
-
- for (Iterator e = fPainters.iterator(); e.hasNext();)
- ((IPainter) e.next()).dispose();
- fPainters.clear();
-
- fSourceViewer.removeTextInputListener(this);
-
- ISelectionProvider provider= fSourceViewer.getSelectionProvider();
- if (provider != null)
- provider.removeSelectionChangedListener(this);
-
- fSourceViewer.removeTextListener(this);
-
- StyledText text= fSourceViewer.getTextWidget();
- if (text != null && !text.isDisposed()) {
- text.removeKeyListener(this);
- text.removeMouseListener(this);
- }
- }
-
- protected void paint(int reason) {
- for (Iterator e = fPainters.iterator(); e.hasNext();)
- ((IPainter) e.next()).paint(reason);
- }
-
- /*
- * @see KeyListener#keyPressed(KeyEvent)
- */
- public void keyPressed(KeyEvent e) {
- // This leaves artifacts when scrolling
- //if (fAutoRepeat)
- paint(IPainter.KEY_STROKE);
-
- fTextChanged= false;
- fAutoRepeat= true;
- }
-
- /*
- * @see KeyListener#keyReleased(KeyEvent)
- */
- public void keyReleased(KeyEvent e) {
- fAutoRepeat= false;
- if (!fTextChanged)
- paint(IPainter.KEY_STROKE);
- }
-
- /*
- * @see MouseListener#mouseDoubleClick(MouseEvent)
- */
- public void mouseDoubleClick(MouseEvent e) {
- }
-
- /*
- * @see MouseListener#mouseDown(MouseEvent)
- */
- public void mouseDown(MouseEvent e) {
- }
-
- /*
- * @see MouseListener#mouseUp(MouseEvent)
- */
- public void mouseUp(MouseEvent e) {
- paint(IPainter.MOUSE_BUTTON);
- }
-
- /*
- * @see
ISelectionChangedListener#selectionChanged(SelectionChangedEvent)
- */
- public void selectionChanged(SelectionChangedEvent event) {
- paint(IPainter.SELECTION);
- }
-
- /*
- * @see ITextListener#textChanged(TextEvent)
- */
- public void textChanged(TextEvent event) {
- fTextChanged= true;
- Control control= fSourceViewer.getTextWidget();
- if (control != null) {
- control.getDisplay().asyncExec(new Runnable() {
- public void run() {
- if (fTextChanged && fSourceViewer != null)
- paint(IPainter.TEXT_CHANGE);
- }
- });
- }
- }
-
- /*
- * @see ITextInputListener#inputDocumentAboutToBeChanged(IDocument,
IDocument)
- */
- public void inputDocumentAboutToBeChanged(IDocument oldInput,
IDocument newInput) {
- if (oldInput != null) {
- for (Iterator e = fPainters.iterator(); e.hasNext();)
- ((IPainter) e.next()).deactivate(false);
- fManager.uninstall(oldInput);
- }
- }
-
- /*
- * @see ITextInputListener#inputDocumentChanged(IDocument, IDocument)
- */
- public void inputDocumentChanged(IDocument oldInput, IDocument
newInput) {
- if (newInput != null) {
- fManager.install(newInput);
- paint(IPainter.TEXT_CHANGE);
- }
- }
-}
-
-
-
Index: src/org/eclipse/cdt/internal/ui/editor/PrintMarginPainter.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/PrintMarginPainter.java
diff -N src/org/eclipse/cdt/internal/ui/editor/PrintMarginPainter.java
--- src/org/eclipse/cdt/internal/ui/editor/PrintMarginPainter.java 26
Jun 2002 20:55:44 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,128 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-
-import org.eclipse.jface.text.source.ISourceViewer;
-
-
-
-public class PrintMarginPainter implements IPainter, PaintListener {
-
-
- private StyledText fTextWidget;
-
- private int fMarginWidth= 80;
- private Color fColor;
- private int fLineStyle= SWT.LINE_SOLID;
- private int fLineWidth= 1;
-
- private int fCachedWidgetX= -1;
- private boolean fIsActive= false;
-
- public PrintMarginPainter(ISourceViewer sourceViewer) {
- fTextWidget= sourceViewer.getTextWidget();
- }
-
- public void setMarginRulerColumn(int width) {
- fMarginWidth= width;
- intialize();
- }
-
- public void setMarginRulerStyle(int lineStyle) {
- fLineStyle= lineStyle;
- }
-
- public void setMarginRulerWidth(int lineWidth) {
- fLineWidth= lineWidth;
- }
-
- /**
- * Must be called before <code>paint</code> is called the first time.
- */
- public void setMarginRulerColor(Color color) {
- fColor= color;
- }
-
- /**
- * Must be called explicitly when font of text widget changes.
- */
- public void intialize() {
- computeWidgetX();
- fTextWidget.redraw();
- }
-
- private void computeWidgetX() {
- GC gc= new GC(fTextWidget);
- int pixels= gc.getFontMetrics().getAverageCharWidth();
- gc.dispose();
-
- fCachedWidgetX= pixels * fMarginWidth;
- }
-
- /*
- * @see IPainter#deactivate(boolean)
- */
- public void deactivate(boolean redraw) {
- if (fIsActive) {
- fIsActive= false;
- fTextWidget.removePaintListener(this);
- if (redraw)
- fTextWidget.redraw();
- }
- }
-
- /*
- * @see IPainter#dispose()
- */
- public void dispose() {
- fTextWidget= null;
- }
-
- /*
- * @see IPainter#paint(int)
- */
- public void paint(int reason) {
- if (!fIsActive) {
- fIsActive= true;
- fTextWidget.addPaintListener(this);
- if (fCachedWidgetX == -1)
- computeWidgetX();
- fTextWidget.redraw();
- }
- }
-
- /*
- * @see IPainter#setPositionManager(IPositionManager)
- */
- public void setPositionManager(IPositionManager manager) {
- }
-
- /*
- * @see PaintListener#paintControl(PaintEvent)
- */
- public void paintControl(PaintEvent e) {
- if (fTextWidget != null) {
- int x= fCachedWidgetX - fTextWidget.getHorizontalPixel();
- if (x >= 0) {
- Rectangle area= fTextWidget.getClientArea();
- e.gc.setForeground(fColor);
- e.gc.setLineStyle(fLineStyle);
- e.gc.setLineWidth(fLineWidth);
- e.gc.drawLine(x, 0, x, area.height);
- }
- }
- }
-}
-
-
Index: src/org/eclipse/cdt/internal/ui/editor/ProblemPainter.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/editor/ProblemPainter.java
diff -N src/org/eclipse/cdt/internal/ui/editor/ProblemPainter.java
--- src/org/eclipse/cdt/internal/ui/editor/ProblemPainter.java 13 Nov
2002 18:50:31 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,248 +0,0 @@
-package org.eclipse.cdt.internal.ui.editor;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModelListener;
-import org.eclipse.jface.text.source.ISourceViewer;
-
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-//import org.eclipse.jdt.core.compiler.IProblem;
-
-
-/**
- * Highlights the temporary problems.
- */
-public class ProblemPainter implements IPainter, PaintListener,
IAnnotationModelListener {
-
- private boolean fIsActive= false;
- private boolean fIsPainting= false;
- protected boolean fIsModelChanging= false;
-
- private Color fColor;
- private ITextEditor fTextEditor;
- private ISourceViewer fSourceViewer;
- private StyledText fTextWidget;
- private IAnnotationModel fModel;
- private List fProblemPositions= new ArrayList();
-
-
-
- public ProblemPainter(ITextEditor textEditor, ISourceViewer
sourceViewer) {
- fTextEditor= textEditor;
- fSourceViewer= sourceViewer;
- fTextWidget= sourceViewer.getTextWidget();
- }
-
- private boolean hasProblems() {
- if (fProblemPositions != null) {
- return !fProblemPositions.isEmpty();
- }
- return false;
- }
-
- protected void enablePainting() {
- if (!fIsPainting && hasProblems()) {
- fIsPainting= true;
- fTextWidget.addPaintListener(this);
- handleDrawRequest(null);
- }
- }
-
- protected void disablePainting(boolean redraw) {
- if (fIsPainting) {
- fIsPainting= false;
- fTextWidget.removePaintListener(this);
- if (redraw && hasProblems())
- handleDrawRequest(null);
- }
- }
-
- protected void setModel(IAnnotationModel model) {
-
- if (fModel != model) {
- if (fModel != null)
- fModel.removeAnnotationModelListener(this);
- fModel= model;
- if (fModel != null)
- fModel.addAnnotationModelListener(this);
- }
-
- if (fProblemPositions != null) {
- fProblemPositions.clear();
- if (fModel != null) {
- Iterator e= new ProblemAnnotationIterator(fModel);
- while (e.hasNext()) {
- IProblemAnnotation pa= (IProblemAnnotation) e.next();
- if (pa.isProblem()) {
- Annotation a= (Annotation) pa;
- Position p= fModel.getPosition(a);
- fProblemPositions.add(p);
- }
- }
- }
- }
- }
-
- /*
- * @see IAnnotationModelListener#modelChanged(IAnnotationModel)
- */
- public void modelChanged(final IAnnotationModel model) {
- if (fTextWidget != null && !fTextWidget.isDisposed() &&
!fIsModelChanging) {
- Display d= fTextWidget.getDisplay();
- if (d != null) {
- d.asyncExec(new Runnable() {
- public void run() {
- disablePainting(true);
- try {
- fIsModelChanging= true;
- setModel(model);
- } finally {
- fIsModelChanging= false;
- }
- enablePainting();
- }
- });
- }
- }
- }
-
- public void setHighlightColor(Color color) {
- fColor= color;
- }
-
- /*
- * @see IPainter#dispose()
- */
- public void dispose() {
- fColor= null;
- fTextWidget= null;
- fModel= null;
- fProblemPositions= null;
- }
-
- /*
- * @see PaintListener#paintControl(PaintEvent)
- */
- public void paintControl(PaintEvent event) {
- if (fTextWidget != null)
- handleDrawRequest(event.gc);
- }
-
- private void handleDrawRequest(GC gc) {
-
- IRegion region= fSourceViewer.getVisibleRegion();
- int offset= region.getOffset();
- int length= region.getLength();
-
- for (Iterator e = fProblemPositions.iterator(); e.hasNext();) {
- Position p = (Position) e.next();
- if (p.overlapsWith(offset, length)) {
- int p1= Math.max(offset, p.getOffset());
- int p2= Math.min(offset + length, p.getOffset() +
p.getLength());
- draw(gc, p1 - offset, p2 - p1);
- }
- }
- }
-
- private int[] computePolyline(Point left, Point right, int height) {
-
- final int WIDTH= 4; // must be even
- final int HEIGHT= 2; // can be any number
-
- int leftX= left.x;
- int peeks= (right.x - left.x) / WIDTH;
-
- // compute (number of point) * 2
- int length= ((2 * peeks) + 1) * 2;
- if (length < 0)
- return new int[0];
-
- int[] coordinates= new int[length];
-
- // cache peeks' y-coordinates
- int bottom= left.y + height - 1;
- int top= bottom - HEIGHT;
-
- // populate array with peek coordinates
- for (int i= 0; i < peeks; i++) {
- int index= 4 * i;
- coordinates[index]= leftX + (WIDTH * i);
- coordinates[index+1]= bottom;
- coordinates[index+2]= coordinates[index] + WIDTH/2;
- coordinates[index+3]= top;
- }
-
- // the last down flank is missing
- coordinates[length-2]= left.x + (WIDTH * peeks);
- coordinates[length-1]= bottom;
-
- return coordinates;
- }
-
- private void draw(GC gc, int offset, int length) {
- if (gc != null) {
-
- Point left= fTextWidget.getLocationAtOffset(offset);
- Point right= fTextWidget.getLocationAtOffset(offset + length);
-
- gc.setForeground(fColor);
- int[] polyline= computePolyline(left, right,
gc.getFontMetrics().getHeight());
- gc.drawPolyline(polyline);
-
- } else {
- fTextWidget.redrawRange(offset, length, true);
- }
- }
-
- /*
- * @see IPainter#deactivate(boolean)
- */
- public void deactivate(boolean redraw) {
- if (fIsActive) {
- fIsActive= false;
- disablePainting(redraw);
- setModel(null);
- }
- }
-
- /*
- * @see IPainter#paint(int)
- */
- public void paint(int reason) {
- if (!fIsActive) {
- fIsActive= true;
- IDocumentProvider provider= fTextEditor.getDocumentProvider();
-
setModel(provider.getAnnotationModel(fTextEditor.getEditorInput()));
- enablePainting();
- }
- }
-
- /*
- * @see IPainter#setPositionManager(IPositionManager)
- */
- public void setPositionManager(IPositionManager manager) {
- }
-}
-
-
Index: src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java
===================================================================
RCS file:
/home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java,v
retrieving revision 1.6
diff -u -r1.6 AsmTextEditor.java
--- src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java 28
Nov 2002 23:38:35 -0000 1.6
+++ src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java 21
Apr 2003 16:58:55 -0000
@@ -114,8 +114,8 @@
} catch (InterruptedException x) {
} catch (InvocationTargetException x) {
// Shared with C editor
- String title=
CEditorMessages.getString("CEditor.error.save.title"); //$NON-NLS-1$
- String msg=
MessageFormat.format(CEditorMessages.getString("CEditor.error.save.message"),
new Object[] { x.getTargetException().getMessage() }); //$NON-NLS-1$
+ String title=
CEditorMessages.getString("CEditor.error.saving.title"); //$NON-NLS-1$
+ String msg=
MessageFormat.format(CEditorMessages.getString("CEditor.error.saving.message"),
new Object[] { x.getTargetException().getMessage() }); //$NON-NLS-1$
MessageDialog.openError(shell, title, msg);
} finally {
getDocumentProvider().changed(newInput);
Index:
src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
===================================================================
RCS file:
/home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java,v
retrieving revision 1.8
diff -u -r1.8 CEditorPreferencePage.java
---
src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
4 Apr 2003 20:38:20 -0000 1.8
+++
src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
21 Apr 2003 16:58:55 -0000
@@ -13,6 +13,17 @@
import java.util.Iterator;
import java.util.Map;
+import org.eclipse.cdt.internal.ui.CPluginImages;
+import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
+import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
+import org.eclipse.cdt.internal.ui.editor.CEditor;
+import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
+import org.eclipse.cdt.internal.ui.text.CTextTools;
+import org.eclipse.cdt.internal.ui.text.ContentAssistPreference;
+import org.eclipse.cdt.internal.ui.text.ICColorConstants;
+import org.eclipse.cdt.ui.CUIPlugin;
+import org.eclipse.cdt.utils.ui.controls.TabFolderLayout;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.preference.PreferencePage;
@@ -45,142 +56,66 @@
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.editors.text.TextEditorPreferenceConstants;
+import org.eclipse.ui.texteditor.AnnotationPreference;
+import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
import org.eclipse.ui.texteditor.WorkbenchChainedTextFontFieldEditor;
-import org.eclipse.cdt.internal.ui.CPluginImages;
-import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
-import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
-import org.eclipse.cdt.internal.ui.editor.CEditor;
-import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
-import org.eclipse.cdt.internal.ui.text.CTextTools;
-import org.eclipse.cdt.internal.ui.text.ContentAssistPreference;
-import org.eclipse.cdt.internal.ui.text.ICColorConstants;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.cdt.utils.ui.controls.TabFolderLayout;
-import org.eclipse.core.runtime.IStatus;
-
-
/*
* The page for setting the editor options.
*/
public class CEditorPreferencePage extends PreferencePage implements
IWorkbenchPreferencePage {
-
- public final OverlayPreferenceStore.OverlayKey[] fKeys= new
OverlayPreferenceStore.OverlayKey[] {
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.PREFERENCE_COLOR_FOREGROUND),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.PREFERENCE_COLOR_BACKGROUND),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_MULTI_LINE_COMMENT),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_MULTI_LINE_COMMENT + "_bold"),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_SINGLE_LINE_COMMENT),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_SINGLE_LINE_COMMENT + "_bold"),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_KEYWORD),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_KEYWORD + "_bold"),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_TYPE),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_TYPE + "_bold"),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_STRING),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_STRING + "_bold"),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_DEFAULT),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_DEFAULT + "_bold"),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.MATCHING_BRACKETS_COLOR),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.MATCHING_BRACKETS),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.MATCHING_BRACKETS_NOBOX),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.CURRENT_LINE_COLOR),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.CURRENT_LINE),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.PROBLEM_INDICATION_COLOR),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.PROBLEM_INDICATION),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.SPACES_FOR_TABS),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.PRINT_MARGIN_COLOR),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
CEditor.PRINT_MARGIN_COLUMN),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.PRINT_MARGIN),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.LINKED_POSITION_COLOR),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.LINE_NUMBER_COLOR),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.LINE_NUMBER_RULER),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.OVERVIEW_RULER),
-
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.AUTOACTIVATION),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
ContentAssistPreference.AUTOACTIVATION_DELAY),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.AUTOINSERT),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PROPOSALS_BACKGROUND),
- //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PROPOSALS_FOREGROUND),
- //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PARAMETERS_BACKGROUND),
- //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PARAMETERS_FOREGROUND),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.AUTOACTIVATION_TRIGGERS_C),
- //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.AUTOACTIVATION_TRIGGERS_JAVADOC),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.SHOW_DOCUMENTED_PROPOSALS),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.ORDER_PROPOSALS),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.CASE_SENSITIVITY),
- new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.ADD_INCLUDE)
-
- };
-
- protected final String[][] fListModel= new String[][] {
- { "Multi-line comment", ICColorConstants.C_MULTI_LINE_COMMENT },
- { "Single-line comment", ICColorConstants.C_SINGLE_LINE_COMMENT },
- { "Keywords", ICColorConstants.C_KEYWORD },
- { "Built-in types", ICColorConstants.C_TYPE },
- { "Strings", ICColorConstants.C_STRING },
- { "Others", ICColorConstants.C_DEFAULT }
+
+ protected final String[][] fListModel = new String[][] { {
"Multi-line comment", ICColorConstants.C_MULTI_LINE_COMMENT }, {
+ "Single-line comment",
ICColorConstants.C_SINGLE_LINE_COMMENT }, {
+ "Keywords", ICColorConstants.C_KEYWORD }, {
+ "Built-in types", ICColorConstants.C_TYPE }, {
+ "Strings", ICColorConstants.C_STRING }, {
+ "Others", ICColorConstants.C_DEFAULT }
};
-
- protected final String[][] fAppearanceColorListModel= new String[][] {
- {"Line number color", CEditor.LINE_NUMBER_COLOR}, //$NON-NLS-1$
- {"Matching bracket color", CEditor.MATCHING_BRACKETS_COLOR},
//$NON-NLS-1$
- {"Current line highlight color", CEditor.CURRENT_LINE_COLOR},
//$NON-NLS-1$
- {"Problem indicator color", CEditor.PROBLEM_INDICATION_COLOR},
//$NON-NLS-1$
- {"Print margin color", CEditor.PRINT_MARGIN_COLOR}, //$NON-NLS-1$
- {"Linked position color", CEditor.LINKED_POSITION_COLOR},
//$NON-NLS-1$
+
+ protected final String[][] fAppearanceColorListModel = new
String[][] { { "Line number color",
TextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR },
//$NON-NLS-1$
+ {
+ "Matching bracket color", CEditor.MATCHING_BRACKETS_COLOR
}, //$NON-NLS-1$
+ {
+ "Current line highlight color",
TextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR }, //$NON-NLS-1$
+ {
+ "Print margin color",
TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR }, //$NON-NLS-1$
+ {
+ "Linked position color", CEditor.LINKED_POSITION_COLOR },
//$NON-NLS-1$
};
-
+
protected OverlayPreferenceStore fOverlayStore;
private CTextTools fCTextTools;
-
- protected Map fColorButtons= new HashMap();
- private SelectionListener fColorButtonListener= new
SelectionListener() {
+
+ protected Map fColorButtons = new HashMap();
+ private SelectionListener fColorButtonListener = new
SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
- ColorEditor editor= (ColorEditor) e.widget.getData();
+ ColorEditor editor = (ColorEditor) e.widget.getData();
PreferenceConverter.setValue(fOverlayStore, (String)
fColorButtons.get(editor), editor.getColorValue());
}
};
-
- protected Map fCheckBoxes= new HashMap();
- private SelectionListener fCheckBoxListener= new SelectionListener() {
+
+ protected Map fCheckBoxes = new HashMap();
+ private SelectionListener fCheckBoxListener = new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
- Button button= (Button) e.widget;
+ Button button = (Button) e.widget;
fOverlayStore.setValue((String) fCheckBoxes.get(button),
button.getSelection());
}
};
-
- protected Map fTextFields= new HashMap();
- private ModifyListener fTextFieldListener= new ModifyListener() {
+
+ protected Map fTextFields = new HashMap();
+ private ModifyListener fTextFieldListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
- Text text= (Text) e.widget;
+ Text text = (Text) e.widget;
fOverlayStore.setValue((String) fTextFields.get(text),
text.getText());
}
};
-
+
private WorkbenchChainedTextFontFieldEditor fFontEditor;
protected List fList;
protected ColorEditor fForegroundColorEditor;
@@ -190,84 +125,198 @@
protected Button fBackgroundColorButton;
protected Button fBoldCheckBox;
protected SourceViewer fPreviewViewer;
-
+
protected List fAppearanceColorList;
- private ColorEditor fSyntaxForegroundColorEditor;
protected ColorEditor fAppearanceForegroundColorEditor;
-
+
+ private final String[][] fAnnotationColorListModel;
+ private ColorEditor fAnnotationForegroundColorEditor;
+ private List fAnnotationList;
+ private Button fShowInOverviewRulerCheckBox;
+ private Button fShowInTextCheckBox;
+
public CEditorPreferencePage() {
setDescription(CUIPlugin.getResourceString("CEditorPreferencePage.description"));
setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore());
- fOverlayStore= new OverlayPreferenceStore(getPreferenceStore(),
fKeys);
+ MarkerAnnotationPreferences preferences = new
MarkerAnnotationPreferences();
+ fAnnotationColorListModel =
createAnnotationTypeListModel(preferences);
+ fOverlayStore = createOverlayStore(preferences);
}
-
+
+ private OverlayPreferenceStore
createOverlayStore(MarkerAnnotationPreferences preferences) {
+ ArrayList overlayKeys = new ArrayList();
+ Iterator e = preferences.getAnnotationPreferences().iterator();
+ while (e.hasNext()) {
+ AnnotationPreference info = (AnnotationPreference) e.next();
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
info.getColorPreferenceKey()));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
info.getTextPreferenceKey()));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
info.getOverviewRulerPreferenceKey()));
+ }
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.PREFERENCE_COLOR_FOREGROUND));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ CEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.PREFERENCE_COLOR_BACKGROUND));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_MULTI_LINE_COMMENT));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_MULTI_LINE_COMMENT + "_bold"));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_SINGLE_LINE_COMMENT));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ ICColorConstants.C_SINGLE_LINE_COMMENT + "_bold"));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_KEYWORD));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_KEYWORD + "_bold"));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_TYPE));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_TYPE + "_bold"));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_STRING));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_STRING + "_bold"));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ICColorConstants.C_DEFAULT));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ICColorConstants.C_DEFAULT + "_bold"));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.MATCHING_BRACKETS_COLOR));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.MATCHING_BRACKETS));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.STRING,
+ TextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ TextEditorPreferenceConstants.EDITOR_CURRENT_LINE));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
CEditor.SPACES_FOR_TABS));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.STRING,
+ TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.INT,
+ TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
CEditor.LINKED_POSITION_COLOR));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.STRING,
+
TextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ TextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ TextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.AUTOACTIVATION));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
ContentAssistPreference.AUTOACTIVATION_DELAY));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.AUTOINSERT));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PROPOSALS_BACKGROUND));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.STRING,
+ ContentAssistPreference.AUTOACTIVATION_TRIGGERS_C));
+ overlayKeys.add(
+ new OverlayPreferenceStore.OverlayKey(
+ OverlayPreferenceStore.BOOLEAN,
+ ContentAssistPreference.SHOW_DOCUMENTED_PROPOSALS));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.ORDER_PROPOSALS));
+ overlayKeys.add(
+ new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.CASE_SENSITIVITY));
+ overlayKeys.add(new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
ContentAssistPreference.ADD_INCLUDE));
+ //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PROPOSALS_FOREGROUND),
+ //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PARAMETERS_BACKGROUND),
+ //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.PARAMETERS_FOREGROUND),
+ //new
OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
ContentAssistPreference.AUTOACTIVATION_TRIGGERS_JAVADOC),
+
+ OverlayPreferenceStore.OverlayKey[] keys = new
OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
+ overlayKeys.toArray(keys);
+ return new OverlayPreferenceStore(getPreferenceStore(), keys);
+ }
+
public static void initDefaults(IPreferenceStore store) {
-
+
Color color;
- Display display= Display.getDefault();
-
+ Display display = Display.getDefault();
+
+ MarkerAnnotationPreferences preferences = new
MarkerAnnotationPreferences();
+ Iterator e = preferences.getAnnotationPreferences().iterator();
+ while (e.hasNext()) {
+ AnnotationPreference info = (AnnotationPreference) e.next();
+ store.setDefault(info.getTextPreferenceKey(),
info.getTextPreferenceValue());
+ store.setDefault(info.getOverviewRulerPreferenceKey(),
info.getOverviewRulerPreferenceValue());
+ PreferenceConverter.setDefault(store,
info.getColorPreferenceKey(), info.getColorPreferenceValue());
+ }
store.setDefault(CEditor.MATCHING_BRACKETS, true);
- store.setDefault(CEditor.MATCHING_BRACKETS_NOBOX, false);
- color= display.getSystemColor(SWT.COLOR_GRAY);
- PreferenceConverter.setDefault(store,
CEditor.MATCHING_BRACKETS_COLOR, color.getRGB());
-
- store.setDefault(CEditor.CURRENT_LINE, true);
- PreferenceConverter.setDefault(store,
CEditor.CURRENT_LINE_COLOR, new RGB(225, 235, 224));
-
- store.setDefault(CEditor.PRINT_MARGIN, true);
- store.setDefault(CEditor.PRINT_MARGIN_COLUMN, 80);
- PreferenceConverter.setDefault(store,
CEditor.PRINT_MARGIN_COLOR, new RGB(176, 180 , 185));
-
- //PreferenceConverter.setDefault(store,
CEditor.PREFERENCE_COLOR_FIND_SCOPE, new RGB(185, 176 , 180));
-
- store.setDefault(CEditor.PROBLEM_INDICATION, true);
- PreferenceConverter.setDefault(store,
CEditor.PROBLEM_INDICATION_COLOR, new RGB(255, 0 , 128));
-
- //store.setDefault(CompilationUnitEditor.OVERVIEW_RULER, false);
-
+ color = display.getSystemColor(SWT.COLOR_GRAY);
+ PreferenceConverter.setDefault(store,
CEditor.MATCHING_BRACKETS_COLOR, color.getRGB());
+
+
store.setDefault(TextEditorPreferenceConstants.EDITOR_CURRENT_LINE, true);
+ PreferenceConverter.setDefault(store,
TextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR, new RGB(225,
235, 224));
+
+
store.setDefault(TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN, true);
+
store.setDefault(TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN,
80);
+ PreferenceConverter.setDefault(store,
TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR, new RGB(176,
180, 185));
+
WorkbenchChainedTextFontFieldEditor.startPropagate(store,
JFaceResources.TEXT_FONT);
-
- color= display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
- PreferenceConverter.setDefault(store,
CEditor.PREFERENCE_COLOR_FOREGROUND, color.getRGB());
+
+ color = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
+ PreferenceConverter.setDefault(store,
CEditor.PREFERENCE_COLOR_FOREGROUND, color.getRGB());
store.setDefault(CEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT, true);
-
- color= display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
- PreferenceConverter.setDefault(store,
CEditor.PREFERENCE_COLOR_BACKGROUND, color.getRGB());
+
+ color = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+ PreferenceConverter.setDefault(store,
CEditor.PREFERENCE_COLOR_BACKGROUND, color.getRGB());
store.setDefault(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT,
false);
-
+
store.setDefault(CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH, 4);
-
+
store.setDefault(CEditor.SPACES_FOR_TABS, false);
-
+
PreferenceConverter.setDefault(store,
ICColorConstants.C_MULTI_LINE_COMMENT, new RGB(63, 127, 95));
store.setDefault(ICColorConstants.C_MULTI_LINE_COMMENT +
"_bold", false);
-
+
PreferenceConverter.setDefault(store,
ICColorConstants.C_SINGLE_LINE_COMMENT, new RGB(63, 125, 95));
store.setDefault(ICColorConstants.C_SINGLE_LINE_COMMENT +
"_bold", false);
-
+
PreferenceConverter.setDefault(store,
ICColorConstants.C_KEYWORD, new RGB(127, 0, 85));
store.setDefault(ICColorConstants.C_KEYWORD + "_bold", true);
-
+
PreferenceConverter.setDefault(store, ICColorConstants.C_TYPE,
new RGB(127, 0, 85));
store.setDefault(ICColorConstants.C_TYPE + "_bold", true);
-
+
PreferenceConverter.setDefault(store,
ICColorConstants.C_STRING, new RGB(42, 0, 255));
store.setDefault(ICColorConstants.C_STRING + "_bold", false);
-
+
PreferenceConverter.setDefault(store,
ICColorConstants.C_DEFAULT, new RGB(0, 0, 0));
- store.setDefault(ICColorConstants.C_DEFAULT + "_bold", false);
-
-
- PreferenceConverter.setDefault(store,
CEditor.LINKED_POSITION_COLOR, new RGB(0, 200 , 100));
-
- store.setDefault(CEditor.LINE_NUMBER_RULER, false);
- PreferenceConverter.setDefault(store,
CEditor.LINE_NUMBER_COLOR, new RGB(0, 0, 0));
-
- store.setDefault(CEditor.OVERVIEW_RULER, true);
-
+ store.setDefault(ICColorConstants.C_DEFAULT + "_bold", false);
+
+ PreferenceConverter.setDefault(store,
CEditor.LINKED_POSITION_COLOR, new RGB(0, 200, 100));
+
+
store.setDefault(TextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER,
false);
+ PreferenceConverter.setDefault(store,
TextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR, new RGB(0,
0, 0));
+
+
store.setDefault(TextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER,
true);
+
store.setDefault(ContentAssistPreference.AUTOACTIVATION, false);
store.setDefault(ContentAssistPreference.AUTOACTIVATION_DELAY,
500);
-
+
store.setDefault(ContentAssistPreference.AUTOINSERT, true);
PreferenceConverter.setDefault(store,
ContentAssistPreference.PROPOSALS_BACKGROUND, new RGB(254, 241, 233));
//PreferenceConverter.setDefault(store,
ContentAssistPreference.PROPOSALS_FOREGROUND, new RGB(0, 0, 0));
@@ -278,13 +327,13 @@
//store.setDefault(ContentAssistPreference.SHOW_VISIBLE_PROPOSALS, true);
store.setDefault(ContentAssistPreference.CASE_SENSITIVITY, false);
store.setDefault(ContentAssistPreference.ORDER_PROPOSALS, false);
- store.setDefault(ContentAssistPreference.ADD_INCLUDE, true);
+ store.setDefault(ContentAssistPreference.ADD_INCLUDE, true);
}
/*
* @see IWorkbenchPreferencePage#init()
- */
+ */
public void init(IWorkbench workbench) {
}
@@ -293,121 +342,261 @@
*/
public void createControl(Composite parent) {
super.createControl(parent);
- //WorkbenchHelp.setHelp(getControl(),
ICHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE);
}
- protected void handleListSelection() {
- int i= fList.getSelectionIndex();
- String key= fListModel[i][1];
- RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
- fForegroundColorEditor.setColorValue(rgb);
+ protected void handleListSelection() {
+ int i = fList.getSelectionIndex();
+ String key = fListModel[i][1];
+ RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+ fForegroundColorEditor.setColorValue(rgb);
fBoldCheckBox.setSelection(fOverlayStore.getBoolean(key +
"_bold"));
}
-
+
+ private Control createAnnotationsPage(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ composite.setLayout(layout);
+
+ Label label = new Label(composite, SWT.LEFT);
+ label.setText("Annotation Presentation Options");
+ GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ gd.horizontalSpan = 2;
+ label.setLayoutData(gd);
+
+ Composite editorComposite = new Composite(composite, SWT.NONE);
+ layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ editorComposite.setLayout(layout);
+ gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL |
GridData.FILL_VERTICAL);
+ gd.horizontalSpan = 2;
+ editorComposite.setLayoutData(gd);
+
+ fAnnotationList = new List(editorComposite, SWT.SINGLE |
SWT.V_SCROLL | SWT.BORDER);
+ gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING |
GridData.FILL_HORIZONTAL);
+ gd.heightHint = convertHeightInCharsToPixels(8);
+ fAnnotationList.setLayoutData(gd);
+
+ Composite optionsComposite = new Composite(editorComposite,
SWT.NONE);
+ layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.numColumns = 2;
+ optionsComposite.setLayout(layout);
+ optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ fShowInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
+ fShowInTextCheckBox.setText("Show In Text");
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
+ gd.horizontalSpan = 2;
+ fShowInTextCheckBox.setLayoutData(gd);
+
+ fShowInOverviewRulerCheckBox = new Button(optionsComposite,
SWT.CHECK);
+ fShowInOverviewRulerCheckBox.setText("Show In Overview Ruler");
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
+ gd.horizontalSpan = 2;
+ fShowInOverviewRulerCheckBox.setLayoutData(gd);
+
+ label = new Label(optionsComposite, SWT.LEFT);
+ label.setText("Annotations Color");
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.BEGINNING;
+ label.setLayoutData(gd);
+
+ fAnnotationForegroundColorEditor = new
ColorEditor(optionsComposite);
+ Button foregroundColorButton =
fAnnotationForegroundColorEditor.getButton();
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
+ foregroundColorButton.setLayoutData(gd);
+
+ fAnnotationList.addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // do nothing
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ handleAnnotationListSelection();
+ }
+ });
+
+ fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // do nothing
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ int i = fAnnotationList.getSelectionIndex();
+ String key = fAnnotationColorListModel[i][2];
+ fOverlayStore.setValue(key,
fShowInTextCheckBox.getSelection());
+ }
+ });
+
+ fShowInOverviewRulerCheckBox.addSelectionListener(new
SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // do nothing
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ int i = fAnnotationList.getSelectionIndex();
+ String key = fAnnotationColorListModel[i][3];
+ fOverlayStore.setValue(key,
fShowInOverviewRulerCheckBox.getSelection());
+ }
+ });
+
+ foregroundColorButton.addSelectionListener(new
SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // do nothing
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ int i = fAnnotationList.getSelectionIndex();
+ String key = fAnnotationColorListModel[i][1];
+ PreferenceConverter.setValue(fOverlayStore, key,
fAnnotationForegroundColorEditor.getColorValue());
+ }
+ });
+
+ return composite;
+ }
+
+ private void handleAnnotationListSelection() {
+ int i = fAnnotationList.getSelectionIndex();
+
+ String key = fAnnotationColorListModel[i][1];
+ RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+ fAnnotationForegroundColorEditor.setColorValue(rgb);
+
+ key = fAnnotationColorListModel[i][2];
+ fShowInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
+
+ key = fAnnotationColorListModel[i][3];
+
fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
+ }
+
+ private String[][]
createAnnotationTypeListModel(MarkerAnnotationPreferences preferences) {
+ ArrayList listModelItems = new ArrayList();
+ Iterator e = preferences.getAnnotationPreferences().iterator();
+ while (e.hasNext()) {
+ AnnotationPreference info = (AnnotationPreference) e.next();
+ listModelItems.add(
+ new String[] {
+ info.getPreferenceLabel(),
+ info.getColorPreferenceKey(),
+ info.getTextPreferenceKey(),
+ info.getOverviewRulerPreferenceKey()});
+ }
+ String[][] items = new String[listModelItems.size()][];
+ listModelItems.toArray(items);
+ return items;
+ }
+
private Control createColorPage(Composite parent) {
-
- Composite colorComposite= new Composite(parent, SWT.NULL);
+
+ Composite colorComposite = new Composite(parent, SWT.NULL);
colorComposite.setLayout(new GridLayout());
- Composite backgroundComposite= new Composite(colorComposite,
SWT.NULL);
- GridLayout layout= new GridLayout();
- layout.marginHeight= 0;
- layout.marginWidth= 0;
- layout.numColumns= 2;
+ Composite backgroundComposite = new Composite(colorComposite,
SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.numColumns = 2;
backgroundComposite.setLayout(layout);
- Label label= new Label(backgroundComposite, SWT.NULL);
+ Label label = new Label(backgroundComposite, SWT.NULL);
label.setText("Bac&kground Color:");
- GridData gd= new GridData();
- gd.horizontalSpan= 2;
+ GridData gd = new GridData();
+ gd.horizontalSpan = 2;
label.setLayoutData(gd);
- SelectionListener backgroundSelectionListener= new
SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- boolean custom=
fBackgroundCustomRadioButton.getSelection();
+ SelectionListener backgroundSelectionListener = new
SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ boolean custom =
fBackgroundCustomRadioButton.getSelection();
fBackgroundColorButton.setEnabled(custom);
fOverlayStore.setValue(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT,
!custom);
}
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
};
- fBackgroundDefaultRadioButton= new Button(backgroundComposite,
SWT.RADIO | SWT.LEFT);
+ fBackgroundDefaultRadioButton = new Button(backgroundComposite,
SWT.RADIO | SWT.LEFT);
fBackgroundDefaultRadioButton.setText("S&ystem Default");
- gd= new GridData();
- gd.horizontalSpan= 2;
+ gd = new GridData();
+ gd.horizontalSpan = 2;
fBackgroundDefaultRadioButton.setLayoutData(gd);
fBackgroundDefaultRadioButton.addSelectionListener(backgroundSelectionListener);
- fBackgroundCustomRadioButton= new Button(backgroundComposite,
SWT.RADIO | SWT.LEFT);
+ fBackgroundCustomRadioButton = new Button(backgroundComposite,
SWT.RADIO | SWT.LEFT);
fBackgroundCustomRadioButton.setText("C&ustom");
fBackgroundCustomRadioButton.addSelectionListener(backgroundSelectionListener);
- fBackgroundColorEditor= new ColorEditor(backgroundComposite);
- fBackgroundColorButton= fBackgroundColorEditor.getButton();
- gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalAlignment= GridData.BEGINNING;
+ fBackgroundColorEditor = new ColorEditor(backgroundComposite);
+ fBackgroundColorButton = fBackgroundColorEditor.getButton();
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
fBackgroundColorButton.setLayoutData(gd);
- label= new Label(colorComposite, SWT.LEFT);
+ label = new Label(colorComposite, SWT.LEFT);
label.setText("Fo®round:");
label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- Composite editorComposite= new Composite(colorComposite, SWT.NULL);
- layout= new GridLayout();
- layout.numColumns= 2;
- layout.marginHeight= 0;
- layout.marginWidth= 0;
+ Composite editorComposite = new Composite(colorComposite,
SWT.NULL);
+ layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
editorComposite.setLayout(layout);
- gd= new GridData(GridData.FILL_BOTH);
- editorComposite.setLayoutData(gd);
+ gd = new GridData(GridData.FILL_BOTH);
+ editorComposite.setLayoutData(gd);
- fList= new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL);
- gd= new GridData(GridData.FILL_BOTH);
- gd.heightHint= convertHeightInCharsToPixels(5);
+ fList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.heightHint = convertHeightInCharsToPixels(5);
fList.setLayoutData(gd);
-
- Composite stylesComposite= new Composite(editorComposite,
SWT.NULL);
- layout= new GridLayout();
- layout.marginHeight= 0;
- layout.marginWidth= 0;
- layout.numColumns= 2;
+
+ Composite stylesComposite = new Composite(editorComposite,
SWT.NULL);
+ layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.numColumns = 2;
stylesComposite.setLayout(layout);
stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- label= new Label(stylesComposite, SWT.LEFT);
+
+ label = new Label(stylesComposite, SWT.LEFT);
label.setText("C&olor:");
- gd= new GridData();
- gd.horizontalAlignment= GridData.BEGINNING;
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.BEGINNING;
label.setLayoutData(gd);
- fForegroundColorEditor= new ColorEditor(stylesComposite);
- Button foregroundColorButton= fForegroundColorEditor.getButton();
- gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalAlignment= GridData.BEGINNING;
+ fForegroundColorEditor = new ColorEditor(stylesComposite);
+ Button foregroundColorButton = fForegroundColorEditor.getButton();
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
foregroundColorButton.setLayoutData(gd);
-
- label= new Label(stylesComposite, SWT.LEFT);
+
+ label = new Label(stylesComposite, SWT.LEFT);
label.setText("&Bold:");
- gd= new GridData();
- gd.horizontalAlignment= GridData.BEGINNING;
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.BEGINNING;
label.setLayoutData(gd);
-
- fBoldCheckBox= new Button(stylesComposite, SWT.CHECK);
- gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalAlignment= GridData.BEGINNING;
+
+ fBoldCheckBox = new Button(stylesComposite, SWT.CHECK);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
fBoldCheckBox.setLayoutData(gd);
-
- label= new Label(colorComposite, SWT.LEFT);
+
+ label = new Label(colorComposite, SWT.LEFT);
label.setText("Preview:");
label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Control previewer= createPreviewer(colorComposite);
- gd= new GridData(GridData.FILL_BOTH);
- gd.widthHint= convertWidthInCharsToPixels(80);
- gd.heightHint= convertHeightInCharsToPixels(15);
+
+ Control previewer = createPreviewer(colorComposite);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.widthHint = convertWidthInCharsToPixels(80);
+ gd.heightHint = convertHeightInCharsToPixels(15);
previewer.setLayoutData(gd);
-
fList.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
@@ -416,15 +605,15 @@
handleListSelection();
}
});
-
+
foregroundColorButton.addSelectionListener(new
SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
- int i= fList.getSelectionIndex();
- String key= fListModel[i][1];
-
+ int i = fList.getSelectionIndex();
+ String key = fListModel[i][1];
+
PreferenceConverter.setValue(fOverlayStore, key,
fForegroundColorEditor.getColorValue());
}
});
@@ -434,7 +623,10 @@
// do nothing
}
public void widgetSelected(SelectionEvent e) {
- PreferenceConverter.setValue(fOverlayStore,
CEditor.PREFERENCE_COLOR_BACKGROUND,
fBackgroundColorEditor.getColorValue());
+ PreferenceConverter.setValue(
+ fOverlayStore,
+ CEditor.PREFERENCE_COLOR_BACKGROUND,
+ fBackgroundColorEditor.getColorValue());
}
});
@@ -443,40 +635,39 @@
// do nothing
}
public void widgetSelected(SelectionEvent e) {
- int i= fList.getSelectionIndex();
- String key= fListModel[i][1];
+ int i = fList.getSelectionIndex();
+ String key = fListModel[i][1];
fOverlayStore.setValue(key + "_bold",
fBoldCheckBox.getSelection());
}
});
-
+
return colorComposite;
}
-
+
private Control createPreviewer(Composite parent) {
-
- fCTextTools= new CTextTools(fOverlayStore);
-
- fPreviewViewer= new SourceViewer(parent, null, SWT.V_SCROLL |
SWT.H_SCROLL);
+
+ fCTextTools = new CTextTools(fOverlayStore);
+
+ fPreviewViewer = new SourceViewer(parent, null, SWT.V_SCROLL |
SWT.H_SCROLL);
fPreviewViewer.configure(new
CSourceViewerConfiguration(fCTextTools, null));
fPreviewViewer.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
fPreviewViewer.setEditable(false);
-
+
initializeViewerColors(fPreviewViewer);
-
- String content=
loadPreviewContentFromFile("ColorSettingPreviewCode.txt");
- IDocument document= new Document(content);
- IDocumentPartitioner partitioner=
fCTextTools.createDocumentPartitioner();
+
+ String content =
loadPreviewContentFromFile("ColorSettingPreviewCode.txt");
+ IDocument document = new Document(content);
+ IDocumentPartitioner partitioner =
fCTextTools.createDocumentPartitioner();
partitioner.connect(document);
document.setDocumentPartitioner(partitioner);
-
+
fPreviewViewer.setDocument(document);
-
+
fOverlayStore.addPropertyChangeListener(new
IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
- String p= event.getProperty();
- if (p.equals(CEditor.PREFERENCE_COLOR_BACKGROUND) ||
-
p.equals(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT))
- {
+ String p = event.getProperty();
+ if (p.equals(CEditor.PREFERENCE_COLOR_BACKGROUND)
+ ||
p.equals(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
initializeViewerColors(fPreviewViewer);
}
@@ -484,34 +675,35 @@
//fPreviewViewer.refresh();
}
});
-
+
return fPreviewViewer.getControl();
}
-
+
private Color fBackgroundColor;
-
+
/**
* Initializes the given viewer's colors.
*
* @param viewer the viewer to be initialized
*/
protected void initializeViewerColors(ISourceViewer viewer) {
-
- IPreferenceStore store= fOverlayStore;
+
+ IPreferenceStore store = fOverlayStore;
if (store != null) {
-
- StyledText styledText= viewer.getTextWidget();
-
+
+ StyledText styledText = viewer.getTextWidget();
+
// ---------- background color ----------------------
- Color color=
store.getBoolean(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)
- ? null
- : createColor(store,
CEditor.PREFERENCE_COLOR_BACKGROUND, styledText.getDisplay());
+ Color color =
+
store.getBoolean(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)
+ ? null
+ : createColor(store,
CEditor.PREFERENCE_COLOR_BACKGROUND, styledText.getDisplay());
styledText.setBackground(color);
-
+
if (fBackgroundColor != null)
fBackgroundColor.dispose();
-
- fBackgroundColor= color;
+
+ fBackgroundColor = color;
}
}
@@ -520,142 +712,129 @@
* Returns <code>null</code> if there is no such information available.
*/
private Color createColor(IPreferenceStore store, String key,
Display display) {
-
- RGB rgb= null;
-
+
+ RGB rgb = null;
+
if (store.contains(key)) {
-
+
if (store.isDefault(key))
- rgb= PreferenceConverter.getDefaultColor(store, key);
+ rgb = PreferenceConverter.getDefaultColor(store, key);
else
- rgb= PreferenceConverter.getColor(store, key);
-
+ rgb = PreferenceConverter.getColor(store, key);
+
if (rgb != null)
return new Color(display, rgb);
}
-
+
return null;
- }
-
+ }
+
// sets enabled flag for a control and all its sub-tree
protected static void setEnabled(Control control, boolean enable) {
control.setEnabled(enable);
if (control instanceof Composite) {
- Composite composite= (Composite) control;
- Control[] children= composite.getChildren();
- for (int i= 0; i < children.length; i++)
+ Composite composite = (Composite) control;
+ Control[] children = composite.getChildren();
+ for (int i = 0; i < children.length; i++)
setEnabled(children[i], enable);
}
}
-
- private ArrayList fNumberFields= new ArrayList();
- private ModifyListener fNumberFieldListener= new ModifyListener() {
+
+ private ArrayList fNumberFields = new ArrayList();
+ private ModifyListener fNumberFieldListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
numberFieldChanged((Text) e.widget);
}
};
-
+
private Button fBracketHighlightButton;
- private Button fBracketHighlightBoxButton;
- private Control fBracketHighlightColor;
private Button fLineHighlightButton;
- private Control fLineHighlightColor;
- private Button fProblemIndicationButton;
- private Control fProblemIndicationColor;
- private Control fFindScopeColor;
- private Control fLinkedPositionColor;
-
- protected void handleAppearanceColorListSelection() {
- int i= fAppearanceColorList.getSelectionIndex();
- String key= fAppearanceColorListModel[i][1];
- RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
- fAppearanceForegroundColorEditor.setColorValue(rgb);
+
+ protected void handleAppearanceColorListSelection() {
+ int i = fAppearanceColorList.getSelectionIndex();
+ String key = fAppearanceColorListModel[i][1];
+ RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+ fAppearanceForegroundColorEditor.setColorValue(rgb);
}
private Control createBehaviorPage(Composite parent) {
- Composite behaviorComposite= new Composite(parent, SWT.NULL);
- GridLayout layout= new GridLayout(); layout.numColumns= 2;
+ Composite behaviorComposite = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
behaviorComposite.setLayout(layout);
-
-
- String label= "Text &font:";
+
+ String label = "Text &font:";
addTextFontEditor(behaviorComposite, label,
JFaceResources.TEXT_FONT);
-
- label= "Displayed &tab width:";
+
+ label = "Displayed &tab width:";
addTextField(behaviorComposite, label,
CSourceViewerConfiguration.PREFERENCE_TAB_WIDTH, 2, 0, true);
-
- label= "Print margin col&umn:";
- addTextField(behaviorComposite, label,
CEditor.PRINT_MARGIN_COLUMN, 4, 0, true);
-
- label= "Insert &space for tabs";
+
+ label = "Print margin col&umn:";
+ addTextField(behaviorComposite, label,
TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 4, 0, true);
+
+ label = "Insert &space for tabs";
addCheckBox(behaviorComposite, label, CEditor.SPACES_FOR_TABS, 0);
-
- label= "Highlight &matching brackets";
- fBracketHighlightButton= addCheckBox(behaviorComposite, label,
CEditor.MATCHING_BRACKETS, 0);
-
- label= "Only c&olor bracket text";
- fBracketHighlightBoxButton= addCheckBox(behaviorComposite,
label, CEditor.MATCHING_BRACKETS_NOBOX, 0);
-
- label= "Show line numbers"; //$NON-NLS-1$
- addCheckBox(behaviorComposite, label,
CEditor.LINE_NUMBER_RULER, 0);
-
- label= "Highlight ¤t line";
- fLineHighlightButton= addCheckBox(behaviorComposite, label,
CEditor.CURRENT_LINE, 0);
-
- label= "Highlight &problems";
- fProblemIndicationButton= addCheckBox(behaviorComposite, label,
CEditor.PROBLEM_INDICATION, 0);
-
- label= "Show overview ruler"; //$NON-NLS-1$
- addCheckBox(behaviorComposite, label, CEditor.OVERVIEW_RULER, 0);
-
- label= "Show print &margin";
- addCheckBox(behaviorComposite, label, CEditor.PRINT_MARGIN, 0);
-
- Label l= new Label(behaviorComposite, SWT.LEFT );
- GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gd.horizontalSpan= 2;
- gd.heightHint= convertHeightInCharsToPixels(1) / 2;
+
+ label = "Highlight &matching brackets";
+ fBracketHighlightButton = addCheckBox(behaviorComposite, label,
CEditor.MATCHING_BRACKETS, 0);
+
+ label = "Show line numbers"; //$NON-NLS-1$
+ addCheckBox(behaviorComposite, label,
TextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
+
+ label = "Highlight ¤t line";
+ fLineHighlightButton = addCheckBox(behaviorComposite, label,
TextEditorPreferenceConstants.EDITOR_CURRENT_LINE, 0);
+
+ label = "Show overview ruler"; //$NON-NLS-1$
+ addCheckBox(behaviorComposite, label,
TextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
+
+ label = "Show print &margin";
+ addCheckBox(behaviorComposite, label,
TextEditorPreferenceConstants.EDITOR_PRINT_MARGIN, 0);
+
+ Label l = new Label(behaviorComposite, SWT.LEFT);
+ GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ gd.horizontalSpan = 2;
+ gd.heightHint = convertHeightInCharsToPixels(1) / 2;
l.setLayoutData(gd);
-
- l= new Label(behaviorComposite, SWT.LEFT);
+
+ l = new Label(behaviorComposite, SWT.LEFT);
l.setText("Appearance color options"); //$NON-NLS-1$
- gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gd.horizontalSpan= 2;
+ gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ gd.horizontalSpan = 2;
l.setLayoutData(gd);
- Composite editorComposite= new Composite(behaviorComposite,
SWT.NONE);
- layout= new GridLayout();
- layout.numColumns= 2;
- layout.marginHeight= 0;
- layout.marginWidth= 0;
+ Composite editorComposite = new Composite(behaviorComposite,
SWT.NONE);
+ layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
editorComposite.setLayout(layout);
- gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL |
GridData.FILL_VERTICAL);
- gd.horizontalSpan= 2;
- editorComposite.setLayoutData(gd);
-
- fAppearanceColorList= new List(editorComposite, SWT.SINGLE |
SWT.V_SCROLL | SWT.BORDER);
- gd= new GridData(GridData.FILL_BOTH);
- gd.heightHint= convertHeightInCharsToPixels(5);
+ gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL |
GridData.FILL_VERTICAL);
+ gd.horizontalSpan = 2;
+ editorComposite.setLayoutData(gd);
+
+ fAppearanceColorList = new List(editorComposite, SWT.SINGLE |
SWT.V_SCROLL | SWT.BORDER);
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.heightHint = convertHeightInCharsToPixels(5);
fAppearanceColorList.setLayoutData(gd);
-
- Composite stylesComposite= new Composite(editorComposite,
SWT.NONE);
- layout= new GridLayout();
- layout.marginHeight= 0;
- layout.marginWidth= 0;
- layout.numColumns= 2;
+
+ Composite stylesComposite = new Composite(editorComposite,
SWT.NONE);
+ layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.numColumns = 2;
stylesComposite.setLayout(layout);
stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- l= new Label(stylesComposite, SWT.LEFT);
+
+ l = new Label(stylesComposite, SWT.LEFT);
l.setText("Color:"); //$NON-NLS-1$
- gd= new GridData();
- gd.horizontalAlignment= GridData.BEGINNING;
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.BEGINNING;
l.setLayoutData(gd);
- fAppearanceForegroundColorEditor= new ColorEditor(stylesComposite);
- Button foregroundColorButton=
fAppearanceForegroundColorEditor.getButton();
- gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalAlignment= GridData.BEGINNING;
+ fAppearanceForegroundColorEditor = new
ColorEditor(stylesComposite);
+ Button foregroundColorButton =
fAppearanceForegroundColorEditor.getButton();
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalAlignment = GridData.BEGINNING;
foregroundColorButton.setLayoutData(gd);
fAppearanceColorList.addSelectionListener(new SelectionListener() {
@@ -671,61 +850,62 @@
// do nothing
}
public void widgetSelected(SelectionEvent e) {
- int i= fAppearanceColorList.getSelectionIndex();
- String key= fAppearanceColorListModel[i][1];
-
+ int i = fAppearanceColorList.getSelectionIndex();
+ String key = fAppearanceColorListModel[i][1];
+
PreferenceConverter.setValue(fOverlayStore, key,
fAppearanceForegroundColorEditor.getColorValue());
}
});
-
+
return behaviorComposite;
}
-
+
private Control createContentAssistPage(Composite parent) {
- Composite contentAssistComposite= new Composite(parent, SWT.NULL);
- GridLayout layout= new GridLayout(); layout.numColumns= 2;
+ Composite contentAssistComposite = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
contentAssistComposite.setLayout(layout);
-
- String label= "Insert single &proposals automatically";
+
+ String label = "Insert single &proposals automatically";
addCheckBox(contentAssistComposite, label,
ContentAssistPreference.AUTOINSERT, 0);
-
+
//label= "Show only proposals visible in the invocation conte&xt";
//addCheckBox(contentAssistComposite, label,
ContentAssistPreference.SHOW_VISIBLE_PROPOSALS, 0);
-
+
//label= "Show only proposals with &matching cases";
//addCheckBox(contentAssistComposite, label,
ContentAssistPreference.CASE_SENSITIVITY, 0);
-
+
//label= "Present proposals in a&lphabetical order";
//addCheckBox(contentAssistComposite, label,
ContentAssistPreference.ORDER_PROPOSALS, 0);
-
- label= "&Enable auto activation";
+
+ label = "&Enable auto activation";
addCheckBox(contentAssistComposite, label,
ContentAssistPreference.AUTOACTIVATION, 0);
//label= "Automatically add &include for proposals from system
functions";
//addCheckBox(contentAssistComposite, label,
ContentAssistPreference.ADD_INCLUDE, 0);
-
- label= "Auto activation dela&y:";
+
+ label = "Auto activation dela&y:";
addTextField(contentAssistComposite, label,
ContentAssistPreference.AUTOACTIVATION_DELAY, 4, 0, true);
-
- label= "Auto activation &triggers for C:";
+
+ label = "Auto activation &triggers for C:";
addTextField(contentAssistComposite, label,
ContentAssistPreference.AUTOACTIVATION_TRIGGERS_C, 25, 0, false);
-
+
//label= "Auto activation triggers for &JavaDoc:";
//addTextField(contentAssistComposite, label,
ContentAssistPreference.AUTOACTIVATION_TRIGGERS_JAVADOC, 25, 0);
-
- label= "&Background for completion proposals:";
+
+ label = "&Background for completion proposals:";
addColorButton(contentAssistComposite, label,
ContentAssistPreference.PROPOSALS_BACKGROUND, 0);
-
+
//label= "&Foreground for completion proposals:";
//addColorButton(contentAssistComposite, label,
ContentAssistPreference.PROPOSALS_FOREGROUND, 0);
-
+
//label= "Bac&kground for method parameters:";
//addColorButton(contentAssistComposite, label,
ContentAssistPreference.PARAMETERS_BACKGROUND, 0);
-
+
//label= "Fo®round for method parameters:";
//addColorButton(contentAssistComposite, label,
ContentAssistPreference.PARAMETERS_FOREGROUND, 0);
-
+
return contentAssistComposite;
}
@@ -733,98 +913,112 @@
* @see PreferencePage#createContents(Composite)
*/
protected Control createContents(Composite parent) {
-
+
fOverlayStore.load();
fOverlayStore.start();
-
- TabFolder folder= new TabFolder(parent, SWT.NONE);
- folder.setLayout(new TabFolderLayout());
+
+ TabFolder folder = new TabFolder(parent, SWT.NONE);
+ folder.setLayout(new TabFolderLayout());
folder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- TabItem item= new TabItem(folder, SWT.NONE);
+
+ TabItem item = new TabItem(folder, SWT.NONE);
item.setText("&General");
item.setImage(CPluginImages.get(CPluginImages.IMG_OBJS_TUNIT));
item.setControl(createBehaviorPage(folder));
-
- item= new TabItem(folder, SWT.NONE);
+
+ item = new TabItem(folder, SWT.NONE);
+ item.setImage(CPluginImages.get(CPluginImages.IMG_OBJS_TUNIT));
+ item.setText("Annotations");
+ item.setControl(createAnnotationsPage(folder));
+
+ item = new TabItem(folder, SWT.NONE);
item.setText("&Colors");
item.setImage(CPluginImages.get(CPluginImages.IMG_OBJS_TUNIT));
item.setControl(createColorPage(folder));
-
- item= new TabItem(folder, SWT.NONE);
+
+ item = new TabItem(folder, SWT.NONE);
item.setText("Code A&ssist");
item.setImage(CPluginImages.get(CPluginImages.IMG_OBJS_TUNIT));
item.setControl(createContentAssistPage(folder));
-
+
initialize();
-
+
return folder;
}
-
+
private void initialize() {
-
+
fFontEditor.setPreferenceStore(getPreferenceStore());
fFontEditor.setPreferencePage(this);
fFontEditor.load();
-
+
initializeFields();
-
- for (int i= 0; i < fListModel.length; i++)
+
+ for (int i = 0; i < fListModel.length; i++)
fList.add(fListModel[i][0]);
-
- for (int i= 0; i < fAppearanceColorListModel.length; i++)
- fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
-
fList.getDisplay().asyncExec(new Runnable() {
public void run() {
fList.select(0);
handleListSelection();
}
});
-
+
+ for (int i = 0; i < fAppearanceColorListModel.length; i++)
+ fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
public void run() {
fAppearanceColorList.select(0);
handleAppearanceColorListSelection();
}
});
+
+ for (int i = 0; i < fAnnotationColorListModel.length; i++)
+ fAnnotationList.add(fAnnotationColorListModel[i][0]);
+ fAnnotationList.getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ if (fAnnotationList != null &&
!fAnnotationList.isDisposed()) {
+ fAnnotationList.select(0);
+ handleAnnotationListSelection();
+ }
+ }
+ });
}
-
+
private void initializeFields() {
-
- Iterator e= fColorButtons.keySet().iterator();
+
+ Iterator e = fColorButtons.keySet().iterator();
while (e.hasNext()) {
- ColorEditor c= (ColorEditor) e.next();
- String key= (String) fColorButtons.get(c);
- RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
+ ColorEditor c = (ColorEditor) e.next();
+ String key = (String) fColorButtons.get(c);
+ RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
c.setColorValue(rgb);
}
-
- e= fCheckBoxes.keySet().iterator();
+
+ e = fCheckBoxes.keySet().iterator();
while (e.hasNext()) {
- Button b= (Button) e.next();
- String key= (String) fCheckBoxes.get(b);
+ Button b = (Button) e.next();
+ String key = (String) fCheckBoxes.get(b);
b.setSelection(fOverlayStore.getBoolean(key));
}
-
- e= fTextFields.keySet().iterator();
+
+ e = fTextFields.keySet().iterator();
while (e.hasNext()) {
- Text t= (Text) e.next();
- String key= (String) fTextFields.get(t);
+ Text t = (Text) e.next();
+ String key = (String) fTextFields.get(t);
t.setText(fOverlayStore.getString(key));
}
-
- RGB rgb= PreferenceConverter.getColor(fOverlayStore,
CEditor.PREFERENCE_COLOR_BACKGROUND);
- fBackgroundColorEditor.setColorValue(rgb);
-
- boolean default_=
fOverlayStore.getBoolean(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT);
+
+ RGB rgb = PreferenceConverter.getColor(fOverlayStore,
CEditor.PREFERENCE_COLOR_BACKGROUND);
+ fBackgroundColorEditor.setColorValue(rgb);
+
+ boolean default_ =
fOverlayStore.getBoolean(CEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT);
fBackgroundDefaultRadioButton.setSelection(default_);
fBackgroundCustomRadioButton.setSelection(!default_);
fBackgroundColorButton.setEnabled(!default_);
-
+
//updateAutoactivationControls();
}
-
+
/*
* @see PreferencePage#performOk()
*/
@@ -833,104 +1027,104 @@
fOverlayStore.propagate();
return true;
}
-
+
/*
* @see PreferencePage#performDefaults()
*/
protected void performDefaults() {
-
+
fFontEditor.loadDefault();
-
+
fOverlayStore.loadDefaults();
initializeFields();
handleListSelection();
handleAppearanceColorListSelection();
-
+
super.performDefaults();
-
+
fPreviewViewer.invalidateTextPresentation();
}
-
+
/*
* @see DialogPage#dispose()
*/
public void dispose() {
-
+
if (fCTextTools != null) {
- fCTextTools= null;
+ fCTextTools = null;
}
-
+
fFontEditor.setPreferencePage(null);
fFontEditor.setPreferenceStore(null);
-
+
if (fOverlayStore != null) {
fOverlayStore.stop();
- fOverlayStore= null;
+ fOverlayStore = null;
}
-
+
super.dispose();
}
-
+
private Control addColorButton(Composite parent, String label,
String key, int indentation) {
- Composite composite= new Composite(parent, SWT.NONE);
- GridData gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan= 2;
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
composite.setLayoutData(gd);
-
- GridLayout layout= new GridLayout();
- layout.numColumns= 2;
- layout.marginWidth= 0;
- layout.marginHeight= 0;
+
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
composite.setLayout(layout);
-
- Label labelControl= new Label(composite, SWT.NONE);
+
+ Label labelControl = new Label(composite, SWT.NONE);
labelControl.setText(label);
-
- gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalIndent= indentation;
+
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalIndent = indentation;
labelControl.setLayoutData(gd);
-
- ColorEditor editor= new ColorEditor(composite);
- Button button= editor.getButton();
+
+ ColorEditor editor = new ColorEditor(composite);
+ Button button = editor.getButton();
button.setData(editor);
-
- gd= new GridData();
- gd.horizontalAlignment= GridData.END;
+
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.END;
button.setLayoutData(gd);
button.addSelectionListener(fColorButtonListener);
-
+
fColorButtons.put(editor, key);
-
+
return composite;
}
-
- private Button addCheckBox(Composite parent, String label, String
key, int indentation) {
- Button checkBox= new Button(parent, SWT.CHECK);
+
+ private Button addCheckBox(Composite parent, String label, String
key, int indentation) {
+ Button checkBox = new Button(parent, SWT.CHECK);
checkBox.setText(label);
-
- GridData gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalIndent= indentation;
- gd.horizontalSpan= 2;
+
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalIndent = indentation;
+ gd.horizontalSpan = 2;
checkBox.setLayoutData(gd);
checkBox.addSelectionListener(fCheckBoxListener);
-
+
fCheckBoxes.put(checkBox, key);
-
+
return checkBox;
}
-
+
private Control addTextField(Composite composite, String label,
String key, int textLimit, int indentation, boolean isNumber) {
-
- Label labelControl= new Label(composite, SWT.NONE);
+
+ Label labelControl = new Label(composite, SWT.NONE);
labelControl.setText(label);
- GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- gd.horizontalIndent= indentation;
+ GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gd.horizontalIndent = indentation;
labelControl.setLayoutData(gd);
-
- Text textControl= new Text(composite, SWT.BORDER |
SWT.SINGLE);
- gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- gd.widthHint= convertWidthInCharsToPixels(textLimit + 1);
+
+ Text textControl = new Text(composite, SWT.BORDER | SWT.SINGLE);
+ gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gd.widthHint = convertWidthInCharsToPixels(textLimit + 1);
textControl.setLayoutData(gd);
textControl.setTextLimit(textLimit);
fTextFields.put(textControl, key);
@@ -940,32 +1134,32 @@
} else {
textControl.addModifyListener(fTextFieldListener);
}
-
+
return textControl;
}
-
+
private void addTextFontEditor(Composite parent, String label,
String key) {
-
- Composite editorComposite= new Composite(parent, SWT.NULL);
- GridLayout layout= new GridLayout();
- layout.numColumns= 3;
- editorComposite.setLayout(layout);
- fFontEditor= new WorkbenchChainedTextFontFieldEditor(key,
label, editorComposite);
+
+ Composite editorComposite = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 3;
+ editorComposite.setLayout(layout);
+ fFontEditor = new WorkbenchChainedTextFontFieldEditor(key,
label, editorComposite);
fFontEditor.setChangeButtonText("C&hange...");
-
- GridData gd= new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan= 2;
+
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
editorComposite.setLayoutData(gd);
}
-
+
private String loadPreviewContentFromFile(String filename) {
String line;
- String separator= System.getProperty("line.separator");
//$NON-NLS-1$
- StringBuffer buffer= new StringBuffer(512);
- BufferedReader reader= null;
+ String separator = System.getProperty("line.separator");
//$NON-NLS-1$
+ StringBuffer buffer = new StringBuffer(512);
+ BufferedReader reader = null;
try {
- reader= new BufferedReader(new
InputStreamReader(getClass().getResourceAsStream(filename)));
- while ((line= reader.readLine()) != null) {
+ reader = new BufferedReader(new
InputStreamReader(getClass().getResourceAsStream(filename)));
+ while ((line = reader.readLine()) != null) {
buffer.append(line);
buffer.append(separator);
}
@@ -973,27 +1167,30 @@
CUIPlugin.getDefault().log(io);
} finally {
if (reader != null) {
- try { reader.close(); } catch (IOException e) {}
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
}
}
return buffer.toString();
}
-
+
protected void numberFieldChanged(Text textControl) {
- String number= textControl.getText();
- IStatus status= validatePositiveNumber(number);
+ String number = textControl.getText();
+ IStatus status = validatePositiveNumber(number);
if (!status.matches(IStatus.ERROR))
fOverlayStore.setValue((String)
fTextFields.get(textControl), number);
updateStatus(status);
}
-
+
private IStatus validatePositiveNumber(String number) {
- StatusInfo status= new StatusInfo();
+ StatusInfo status = new StatusInfo();
if (number.length() == 0) {
//status.setError("CEditorPreferencePage.empty_input");
//$NON-NLS-1$
} else {
try {
- int value= Integer.parseInt(number);
+ int value = Integer.parseInt(number);
if (value < 0)
status.setError("CEditorPreferencePage.invalid_input"); //$NON-NLS-1$
} catch (NumberFormatException e) {
@@ -1002,18 +1199,16 @@
}
return status;
}
-
+
private void updateStatus(IStatus status) {
if (!status.matches(IStatus.ERROR)) {
- for (int i= 0; i < fNumberFields.size(); i++) {
- Text text= (Text) fNumberFields.get(i);
- IStatus s= validatePositiveNumber(text.getText());
- status= StatusUtil.getMoreSevere(s, status);
+ for (int i = 0; i < fNumberFields.size(); i++) {
+ Text text = (Text) fNumberFields.get(i);
+ IStatus s = validatePositiveNumber(text.getText());
+ status = StatusUtil.getMoreSevere(s, status);
}
- }
+ }
setValid(!status.matches(IStatus.ERROR));
StatusUtil.applyToStatusLine(this, status);
}
}
-
-
Index:
src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
===================================================================
RCS file:
src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
diff -N
src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
---
src/org/eclipse/cdt/internal/ui/preferences/CLaunchingPropertyPage.java
4 Feb 2003 20:00:46 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,216 +0,0 @@
-package org.eclipse.cdt.internal.ui.preferences;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.cdt.core.CProjectNature;
-import org.eclipse.cdt.internal.ui.ICHelpContextIds;
-import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
-import org.eclipse.cdt.internal.ui.dialogs.StatusTool;
-import org.eclipse.cdt.internal.ui.wizards.dialogfields.DialogField;
-import
org.eclipse.cdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import
org.eclipse.cdt.internal.ui.wizards.dialogfields.IStringButtonAdapter;
-import
org.eclipse.cdt.internal.ui.wizards.dialogfields.StringButtonDialogField;
-import org.eclipse.cdt.internal.ui.wizards.dialogfields.StringDialogField;
-import org.eclipse.cdt.internal.ui.wizards.swt.MGridLayout;
-import org.eclipse.cdt.ui.CUIPlugin;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.help.WorkbenchHelp;
-public class CLaunchingPropertyPage extends PropertyPage {
-
- private static final String PAGE_NAME= "CLaunchingPropertyPage";
- private static final String ARGUMENTS= PAGE_NAME + ".arguments";
- private static final String WORKINGDIR= PAGE_NAME + ".workingdir";
-
- private static final String NO_CPROJECT= PAGE_NAME +
".nocproject.label";
-
- private static final String ERROR_WORKINGDIR_NOTEXISTS= PAGE_NAME +
".error.WorkingDirNotExists";
-
- private StringDialogField fArgumentField;
- protected StringButtonDialogField fWorkingDirField;
-
- private StatusInfo fWorkingDirStatus;
-
- private QualifiedName fArgumentsPropertyName;
- private QualifiedName fWorkingDirPropertyName;
-
- private Shell fShell;
-
- public CLaunchingPropertyPage() {
- LaunchingDialogFieldsAdapter adapter= new
LaunchingDialogFieldsAdapter();
-
- fArgumentField= new StringDialogField();
-
fArgumentField.setLabelText(CUIPlugin.getResourceString(ARGUMENTS +
".label"));
- fArgumentField.setDialogFieldListener(adapter);
-
- fWorkingDirField= new StringButtonDialogField(adapter);
-
fWorkingDirField.setLabelText(CUIPlugin.getResourceString(WORKINGDIR +
".label"));
-
fWorkingDirField.setButtonLabel(CUIPlugin.getResourceString(WORKINGDIR
+ ".browse"));
- fWorkingDirField.setDialogFieldListener(adapter);
-
- fWorkingDirStatus= new StatusInfo();
-
- fArgumentsPropertyName= new QualifiedName(CUIPlugin.PLUGIN_ID,
"arguments");
- fWorkingDirPropertyName= new QualifiedName(CUIPlugin.PLUGIN_ID,
"workingdir");
- }
-
- /**
- * @see PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
- Composite composite= new Composite(parent, SWT.NONE);
- fShell= parent.getShell();
-
- MGridLayout layout= new MGridLayout();
- layout.marginWidth= 0;
- layout.marginHeight= 0;
- layout.minimumWidth= 400;
- layout.minimumHeight= 350;
- layout.numColumns= 3;
- composite.setLayout(layout);
-
- boolean isCProject= false;
- try {
- IFile file= getInputFile();
- isCProject=
(file.getProject().hasNature(CProjectNature.C_NATURE_ID));
- } catch (CoreException e) {
- CUIPlugin.getDefault().log(e);
- }
-
- if (isCProject) {
- fArgumentField.doFillIntoGrid(composite, 3);
- fWorkingDirField.doFillIntoGrid(composite, 3);
- initialize();
- } else {
- DialogField labelField= new DialogField();
-
labelField.setLabelText(CUIPlugin.getResourceString(NO_CPROJECT));
- labelField.doFillIntoGrid(composite, 3);
- }
- WorkbenchHelp.setHelp(parent,
ICHelpContextIds.LAUNCH_PROPERTY_PAGE);
-
- return composite;
- }
-
-
- private void initialize() {
- IFile file= getInputFile();
- if (file != null) {
- try {
- String arguments=
file.getPersistentProperty(fArgumentsPropertyName);
- if (arguments != null) {
- fArgumentField.setText(arguments);
- }
-
- String workingdir=
file.getPersistentProperty(fWorkingDirPropertyName);
- if (workingdir != null) {
- fWorkingDirField.setText(workingdir);
- } else {
-
fWorkingDirField.setText(file.getParent().getLocation().toOSString());
- }
- } catch (CoreException e) {
- CUIPlugin.getDefault().log(e.getStatus());
- }
- }
- }
-
- /**
- * @see PreferencePage#performOk
- */
- public boolean performOk() {
- IFile file= getInputFile();
- if (file != null) {
- try {
- file.setPersistentProperty(fArgumentsPropertyName,
fArgumentField.getText());
- file.setPersistentProperty(fWorkingDirPropertyName,
fWorkingDirField.getText());
- } catch (CoreException e) {
- ErrorDialog.openError(fShell, "Error", null,
e.getStatus());
- CUIPlugin.getDefault().log(e.getStatus());
- return false;
- }
- }
- return true;
- }
-
- /**
- * @see PreferencePage#doDefaults
- */
- protected void performDefaults() {
- initialize();
- super.performDefaults();
- }
-
- private class LaunchingDialogFieldsAdapter implements
IDialogFieldListener, IStringButtonAdapter {
-
- public void changeControlPressed(DialogField field) {
- String oldValue= fWorkingDirField.getText();
- String newValue= chooseFolder(oldValue);
- if (newValue != null) {
- fWorkingDirField.setText(newValue);
- }
- }
-
- public void dialogFieldChanged(DialogField field) {
- doFieldChanged(field);
- }
- }
-
- protected void doFieldChanged(DialogField field) {
- if (field == fWorkingDirField) {
- updateWorkingDirStatus();
- }
- projectStatusChanged(fWorkingDirStatus);
- }
-
-
- private void updateWorkingDirStatus() {
- String str= fWorkingDirField.getText();
- if (!"".equals(str)) {
- IPath path= new Path(str);
- if (!path.toFile().isDirectory()) {
-
fWorkingDirStatus.setError(CUIPlugin.getResourceString(ERROR_WORKINGDIR_NOTEXISTS));
- return;
- }
- }
- fWorkingDirStatus.setOK();
- }
-
- private IFile getInputFile() {
- return (IFile)getElement();
- }
-
- protected String chooseFolder(String initPath) {
- DirectoryDialog dialog= new DirectoryDialog(fShell, 0);
- dialog.setFilterPath(initPath);
- String res= dialog.open();
- return res;
- }
-
- public void projectStatusChanged(IStatus status) {
- setValid(!status.matches(IStatus.ERROR));
- StatusTool.applyToStatusLine(this, status);
- }
-
- /**
- * @see DialogPage#setVisible(boolean)
- */
- public void setVisible(boolean visible) {
- super.setVisible(visible);
- if (visible && fShell != null) {
- fArgumentField.postSetFocusOnDialogField(fShell.getDisplay());
- }
- }
-}
Index: src/org/eclipse/cdt/internal/ui/text/CPairMatcher.java
===================================================================
RCS file:
/home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/CPairMatcher.java,v
retrieving revision 1.2
diff -u -r1.2 CPairMatcher.java
--- src/org/eclipse/cdt/internal/ui/text/CPairMatcher.java 29 Jan
2003 18:18:30 -0000 1.2
+++ src/org/eclipse/cdt/internal/ui/text/CPairMatcher.java 21 Apr
2003 16:58:55 -0000
@@ -7,105 +7,91 @@
import java.io.IOException;
-
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.Region;
-
+import org.eclipse.jface.text.source.ICharacterPairMatcher;
/**
* Helper class for match pairs of characters.
*/
-public class CPairMatcher {
-
-
- public static final int LEFT= 1;
- public static final int RIGHT= 2;
+public class CPairMatcher implements ICharacterPairMatcher {
-
-
protected char[] fPairs;
protected IDocument fDocument;
protected int fOffset;
-
+
protected int fStartPos;
protected int fEndPos;
protected int fAnchor;
-
- protected CCodeReader fReader= new CCodeReader();
-
-
+
+ protected CCodeReader fReader = new CCodeReader();
+
public CPairMatcher(char[] pairs) {
- fPairs= pairs;
+ fPairs = pairs;
}
-
- public IRegion match(IDocument document, int offset) {
+ public IRegion match(IDocument document, int offset) {
- fOffset= offset;
-
+ fOffset = offset;
if (fOffset < 0)
return null;
-
- fDocument= document;
-
+ fDocument = document;
if (matchPairsAt() && fStartPos != fEndPos)
return new Region(fStartPos, fEndPos - fStartPos + 1);
-
+
return null;
}
-
+
public int getAnchor() {
return fAnchor;
}
-
- public void dispose() {
- fDocument= null;
+
+ /*
+ * @see org.eclipse.jface.text.source.ICharacterPairMatcher#clear()
+ */
+ public void clear() {
if (fReader != null) {
try {
fReader.close();
} catch (IOException x) {
// ignore
}
- fReader= null;
}
}
-
- protected boolean matchPairsAt() {
+ public void dispose() {
+ clear();
+ fDocument = null;
+ fReader = null;
+ }
+ protected boolean matchPairsAt() {
int i;
int pairIndex1= fPairs.length;
int pairIndex2= fPairs.length;
-
fStartPos= -1;
fEndPos= -1;
-
// get the chars preceding and following the start position
try {
-
- /*
- A quick hack to get around the fact that we can't bracket
- match on the very first element of a document. We make the
- character to match a null character which is unlikely to
match.
- */
- char prevChar= (fOffset > 0) ? fDocument.getChar(fOffset -
1) : '\0';
- char nextChar= fDocument.getChar(fOffset);
-
+ char prevChar= fDocument.getChar(Math.max(fOffset - 1, 0));
+// modified behavior for
http://dev.eclipse.org/bugs/show_bug.cgi?id=16879
+// char nextChar= fDocument.getChar(fOffset);
// search for opening peer character next to the activation
point
for (i= 0; i < fPairs.length; i= i + 2) {
- if (nextChar == fPairs[i]) {
- fStartPos= fOffset;
- pairIndex1= i;
- } else if (prevChar == fPairs[i]) {
+// if (nextChar == fPairs[i]) {
+// fStartPos= fOffset;
+// pairIndex1= i;
+// } else
+ if (prevChar == fPairs[i]) {
fStartPos= fOffset - 1;
pairIndex1= i;
}
@@ -116,13 +102,13 @@
if (prevChar == fPairs[i]) {
fEndPos= fOffset - 1;
pairIndex2= i;
- } else if (nextChar == fPairs[i]) {
- fEndPos= fOffset;
- pairIndex2= i;
- }
+ }
+// else if (nextChar == fPairs[i]) {
+// fEndPos= fOffset;
+// pairIndex2= i;
+// }
}
-
if (fEndPos > -1) {
fAnchor= RIGHT;
fStartPos= searchForOpeningPeer(fEndPos,
fPairs[pairIndex2 - 1], fPairs[pairIndex2], fDocument);
@@ -139,54 +125,119 @@
fStartPos= -1;
}
-
} catch (BadLocationException x) {
} catch (IOException x) {
}
-
return false;
}
+
+
+// protected boolean matchPairsAt() {
+//
+// int i;
+// int pairIndex1 = fPairs.length;
+// int pairIndex2 = fPairs.length;
+//
+// fStartPos = -1;
+// fEndPos = -1;
+//
+// // get the chars preceding and following the start position
+// try {
+//
+// /*
+// A quick hack to get around the fact that we can't bracket
+// match on the very first element of a document. We make the
+// character to match a null character which is unlikely to
match.
+// */
+// char prevChar = (fOffset > 0) ? fDocument.getChar(fOffset
- 1) : '\0';
+// char nextChar = fDocument.getChar(fOffset);
+//
+// // search for opening peer character next to the
activation point
+// for (i = 0; i < fPairs.length; i = i + 2) {
+// if (nextChar == fPairs[i]) {
+// fStartPos = fOffset;
+// pairIndex1 = i;
+// } else if (prevChar == fPairs[i]) {
+// fStartPos = fOffset - 1;
+// pairIndex1 = i;
+// }
+// }
+//
+// // search for closing peer character next to the
activation point
+// for (i = 1; i < fPairs.length; i = i + 2) {
+// if (prevChar == fPairs[i]) {
+// fEndPos = fOffset - 1;
+// pairIndex2 = i;
+// } else if (nextChar == fPairs[i]) {
+// fEndPos = fOffset;
+// pairIndex2 = i;
+// }
+// }
+//
+// if (fEndPos > -1) {
+// fAnchor = RIGHT;
+// fStartPos = searchForOpeningPeer(fEndPos,
fPairs[pairIndex2 - 1], fPairs[pairIndex2], fDocument);
+// if (fStartPos > -1)
+// return true;
+// else
+// fEndPos = -1;
+// } else if (fStartPos > -1) {
+// fAnchor = LEFT;
+// fEndPos = searchForClosingPeer(fStartPos,
fPairs[pairIndex1], fPairs[pairIndex1 + 1], fDocument);
+// if (fEndPos > -1)
+// return true;
+// else
+// fStartPos = -1;
+// }
+//
+// } catch (BadLocationException x) {
+// } catch (IOException x) {
+// }
+//
+// return false;
+// }
+
protected int searchForClosingPeer(int offset, int openingPeer, int
closingPeer, IDocument document) throws IOException {
-
+
fReader.configureForwardReader(document, offset + 1,
document.getLength(), true, true);
-
- int stack= 1;
- int c= fReader.read();
+
+ int stack = 1;
+ int c = fReader.read();
while (c != CCodeReader.EOF) {
if (c == openingPeer && c != closingPeer)
stack++;
else if (c == closingPeer)
stack--;
-
+
if (stack == 0)
return fReader.getOffset();
-
- c= fReader.read();
+
+ c = fReader.read();
}
-
- return -1;
+
+ return -1;
}
-
+
protected int searchForOpeningPeer(int offset, int openingPeer, int
closingPeer, IDocument document) throws IOException {
-
+
fReader.configureBackwardReader(document, offset, true, true);
-
- int stack= 1;
- int c= fReader.read();
+
+ int stack = 1;
+ int c = fReader.read();
while (c != CCodeReader.EOF) {
if (c == closingPeer && c != openingPeer)
stack++;
else if (c == openingPeer)
stack--;
-
+
if (stack == 0)
return fReader.getOffset();
-
- c= fReader.read();
+
+ c = fReader.read();
}
-
+
return -1;
}
}
Index: src/org/eclipse/cdt/internal/ui/util/CoreUtility.java
===================================================================
RCS file: src/org/eclipse/cdt/internal/ui/util/CoreUtility.java
diff -N src/org/eclipse/cdt/internal/ui/util/CoreUtility.java
--- src/org/eclipse/cdt/internal/ui/util/CoreUtility.java 26 Jun 2002
20:55:44 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,43 +0,0 @@
-package org.eclipse.cdt.internal.ui.util;
-
-/*
- * (c) Copyright IBM Corp. 2000, 2001.
- * All Rights Reserved.
- */
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-
-public class CoreUtility {
-
- /**
- * Adds a nauture to a project
- */
- public static void addNatureToProject(IProject proj, String
natureId, IProgressMonitor monitor) throws CoreException {
- IProjectDescription description = proj.getDescription();
- String[] prevNatures= description.getNatureIds();
- String[] newNatures= new String[prevNatures.length + 1];
- System.arraycopy(prevNatures, 0, newNatures, 0,
prevNatures.length);
- newNatures[prevNatures.length]= natureId;
- description.setNatureIds(newNatures);
- proj.setDescription(description, monitor);
- }
- /**
- * Creates a folder and all parent folders if not existing
- * Project must exist
- */
- public static void createFolder(IFolder folder, boolean force,
boolean local, IProgressMonitor monitor) throws CoreException {
- if (!folder.exists()) {
- IContainer parent= folder.getParent();
- if (parent instanceof IFolder) {
- createFolder((IFolder)parent, force, local, monitor);
- }
- folder.create(force, local, monitor);
- }
- }
-}