1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

2005-04-12 Alain Magloire

Fix for PR 91163, 91165 and 91169
	* src/org/eclipse/cdt/internal/ui/compare/CMergeViewer.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
	* src/org/eclipse/cdt/internal/ui/editor/CEditor.properties
	* src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java
	* src/org/eclipse/cdt/internal/ui/preferences/AbstractPreferencePage.java
	* src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
	* src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java
	* src/org/eclipse/cdt/internal/ui/preferences/CSourcePreviewerUpdater.java
	* src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java
	* src/org/eclipse/cdt/internal/ui/text/CTextTools.java
	* src/org/eclipse/cdt/ui/CUIPlugin.java
This commit is contained in:
Alain Magloire 2005-04-12 22:58:55 +00:00
parent 5553a5da68
commit ed2df81872
12 changed files with 162 additions and 71 deletions

View file

@ -1,3 +1,17 @@
2005-04-12 Alain Magloire
Fix for PR 91163, 91165 and 91169
* src/org/eclipse/cdt/internal/ui/compare/CMergeViewer.java
* src/org/eclipse/cdt/internal/ui/editor/CEditor.java
* src/org/eclipse/cdt/internal/ui/editor/CEditor.properties
* src/org/eclipse/cdt/internal/ui/editor/asm/AsmTextEditor.java
* src/org/eclipse/cdt/internal/ui/preferences/AbstractPreferencePage.java
* src/org/eclipse/cdt/internal/ui/preferences/CEditorPreferencePage.java
* src/org/eclipse/cdt/internal/ui/preferences/CodeAssistPreferencePage.java
* src/org/eclipse/cdt/internal/ui/preferences/CSourcePreviewerUpdater.java
* src/org/eclipse/cdt/internal/ui/text/CSourceViewerConfiguration.java
* src/org/eclipse/cdt/internal/ui/text/CTextTools.java
* src/org/eclipse/cdt/ui/CUIPlugin.java
2005-04-12 Alain Magloire
- icons/full: Remove obsolete directory.

View file

@ -38,7 +38,6 @@ public class CMergeViewer extends TextMergeViewer {
private IPreferenceStore fPreferenceStore;
private boolean fUseSystemColors;
private CSourceViewerConfiguration fSourceViewerConfiguration;
private CTextTools fCTextTools;
public CMergeViewer(Composite parent, int styles, CompareConfiguration mp) {
super(parent, styles, mp);
@ -101,7 +100,8 @@ public class CMergeViewer extends TextMergeViewer {
}
}
if (getTextTools().affectsBehavior(event)) {
if (getSourceViewerConfiguration().affectsBehavior(event)) {
getSourceViewerConfiguration().adaptToPreferenceChange(event);
invalidateTextPresentation();
}
}
@ -118,16 +118,9 @@ public class CMergeViewer extends TextMergeViewer {
return PreferenceConverter.getColor(store, key);
}
private CTextTools getTextTools() {
if (fCTextTools == null) {
fCTextTools = CUIPlugin.getDefault().getTextTools();
}
return fCTextTools;
}
private CSourceViewerConfiguration getSourceViewerConfiguration() {
if (fSourceViewerConfiguration == null) {
CTextTools tools= getTextTools();
CTextTools tools= CUIPlugin.getDefault().getTextTools();
fSourceViewerConfiguration = new CSourceViewerConfiguration(tools, null);
}
return fSourceViewerConfiguration;

View file

@ -25,7 +25,6 @@ import org.eclipse.cdt.internal.ui.actions.FoldingActionGroup;
import org.eclipse.cdt.internal.ui.actions.GoToNextPreviousMemberAction;
import org.eclipse.cdt.internal.ui.actions.RemoveBlockCommentAction;
import org.eclipse.cdt.internal.ui.browser.typehierarchy.OpenTypeHierarchyAction;
import org.eclipse.cdt.internal.ui.editor.asm.AsmTextTools;
import org.eclipse.cdt.internal.ui.search.actions.OpenDeclarationsAction;
import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
import org.eclipse.cdt.internal.ui.text.CPairMatcher;
@ -1289,9 +1288,11 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
* @see AbstractTextEditor#affectsTextPresentation(PropertyChangeEvent)
*/
protected boolean affectsTextPresentation(PropertyChangeEvent event) {
CTextTools textTools = CUIPlugin.getDefault().getTextTools();
AsmTextTools asmTools = CUIPlugin.getDefault().getAsmTextTools();
return textTools.affectsBehavior(event) || asmTools.affectsBehavior(event);
SourceViewerConfiguration configuration = getSourceViewerConfiguration();
if (configuration instanceof CSourceViewerConfiguration) {
return ((CSourceViewerConfiguration)configuration).affectsBehavior(event);
}
return false;
}
/**

View file

@ -171,9 +171,9 @@ CEditor.menu.search=Search
EditorUtility.concatModifierStrings= {0} + {1}
OpenOnSelection.label=Open On Selection
GotoNextMemeber.description=Goes to next member
GotoNextMemeber.label=Go to &next member
GotoNextMemeber.tooltip=Goes to next member
GotoPrevMemeber.description=Goes to previous member
GotoPrevMemeber.label=Go to &previous member
GotoPrevMemeber.tooltip=Goes to previous member.
GotoNextMember.description=Goes to next member
GotoNextMember.label=Go to &next member
GotoNextMember.tooltip=Goes to next member
GotoPrevMember.description=Goes to previous member
GotoPrevMember.label=Go to &previous member
GotoPrevMember.tooltip=Goes to previous member.

View file

@ -23,8 +23,8 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.actions.WorkspaceModifyOperation;
import org.eclipse.ui.dialogs.SaveAsDialog;
import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.texteditor.AbstractDecoratedTextEditor;
import org.eclipse.ui.texteditor.DefaultRangeIndicator;
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
@ -35,7 +35,7 @@ import org.eclipse.ui.texteditor.ITextEditorActionConstants;
/**
* Assembly text editor
*/
public class AsmTextEditor extends AbstractDecoratedTextEditor {
public class AsmTextEditor extends TextEditor {
//public class AsmTextEditor extends StatusTextEditor {
// FIXME: Should this editor have a different preference store ?
// For now we are sharing with the CEditor and any changes will in the

View file

@ -19,6 +19,7 @@ import java.util.Map;
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
import org.eclipse.cdt.internal.ui.dialogs.StatusUtil;
import org.eclipse.cdt.internal.ui.util.PixelConverter;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.PreferenceConstants;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.preference.PreferenceConverter;
@ -47,6 +48,14 @@ public abstract class AbstractPreferencePage extends PreferencePage implements I
protected OverlayPreferenceStore fOverlayStore;
/**
* List of master/slave listeners when there's a dependency.
*
* @see #createDependency(Button, String, Control)
* @since 3.0
*/
private ArrayList fMasterSlaveListeners= new ArrayList();
protected Map fTextFields = new HashMap();
private ModifyListener fTextFieldListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
@ -157,6 +166,21 @@ public abstract class AbstractPreferencePage extends PreferencePage implements I
filler.setLayoutData(gd);
}
protected void createDependency(final Button master, String masterKey, final Control slave) {
indent(slave);
boolean masterState= fOverlayStore.getBoolean(masterKey);
slave.setEnabled(masterState);
SelectionListener listener= new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
slave.setEnabled(master.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {}
};
master.addSelectionListener(listener);
fMasterSlaveListeners.add(listener);
}
protected void numberFieldChanged(Text textControl) {
String number = textControl.getText();
IStatus status = validatePositiveNumber(number);
@ -245,13 +269,6 @@ public abstract class AbstractPreferencePage extends PreferencePage implements I
protected abstract OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys();
public void createControl(Composite parent){
super.createControl(parent);
fOverlayStore.load();
fOverlayStore.start();
initializeFields();
}
protected void initializeFields() {
Iterator e = fColorButtons.keySet().iterator();
@ -290,6 +307,7 @@ public abstract class AbstractPreferencePage extends PreferencePage implements I
*/
public boolean performOk() {
fOverlayStore.propagate();
CUIPlugin.getDefault().savePluginPreferences();
return true;
}

View file

@ -25,8 +25,6 @@ import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentPartitioner;
import org.eclipse.jface.text.source.SourceViewer;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
@ -71,14 +69,6 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
private CTextTools fCTextTools;
/**
* List of master/slave listeners when there's a dependency.
*
* @see #createDependency(Button, String, Control)
* @since 3.0
*/
private ArrayList fMasterSlaveListeners= new ArrayList();
protected List fList;
protected ColorEditor fForegroundColorEditor;
protected Button fBoldCheckBox;
@ -287,8 +277,9 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
private Control createPreviewer(Composite parent) {
fCTextTools = CUIPlugin.getDefault().getTextTools();
CSourceViewerConfiguration configuration = new CSourceViewerConfiguration(fCTextTools, null);
fPreviewViewer = new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL);
fPreviewViewer.configure(new CSourceViewerConfiguration(fCTextTools, null));
fPreviewViewer.configure(configuration);
fPreviewViewer.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
fPreviewViewer.setEditable(false);
@ -300,14 +291,7 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
fPreviewViewer.setDocument(document);
fOverlayStore.addPropertyChangeListener(new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
fPreviewViewer.getDocument().set(fPreviewViewer.getDocument().get());
fPreviewViewer.invalidateTextPresentation();
//fPreviewViewer.refresh();
}
});
CSourcePreviewerUpdater.registerPreviewer(fPreviewViewer, configuration, fOverlayStore);
return fPreviewViewer.getControl();
}
@ -355,21 +339,6 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
return link;
}
private void createDependency(final Button master, String masterKey, final Control slave) {
indent(slave);
boolean masterState= fOverlayStore.getBoolean(masterKey);
slave.setEnabled(masterState);
SelectionListener listener= new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
slave.setEnabled(master.getSelection());
}
public void widgetDefaultSelected(SelectionEvent e) {}
};
master.addSelectionListener(listener);
fMasterSlaveListeners.add(listener);
}
/*
* @see PreferencePage#createContents(Composite)
*/
@ -378,6 +347,9 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
fCEditorHoverConfigurationBlock= new CEditorHoverConfigurationBlock(this, fOverlayStore);
fFoldingConfigurationBlock= new FoldingConfigurationBlock(fOverlayStore);
fOverlayStore.load();
fOverlayStore.start();
createHeader(parent);
TabFolder folder = new TabFolder(parent, SWT.NONE);
@ -409,8 +381,9 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
initializeFields();
for (int i = 0; i < fListModel.length; i++)
for (int i = 0; i < fListModel.length; i++) {
fList.add(fListModel[i][0]);
}
fList.getDisplay().asyncExec(new Runnable() {
public void run() {
fList.select(0);
@ -436,15 +409,13 @@ public class CEditorPreferencePage extends AbstractPreferencePage implements IWo
*/
protected void performDefaults() {
fOverlayStore.loadDefaults();
initializeFields();
super.performDefaults();
handleListSelection();
fCEditorHoverConfigurationBlock.performDefaults();
fFoldingConfigurationBlock.performDefaults();
super.performDefaults();
fPreviewViewer.invalidateTextPresentation();
}

View file

@ -0,0 +1,76 @@
/*******************************************************************************
* Copyright (c) 2000, 2004 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.ui.preferences;
import org.eclipse.cdt.internal.ui.text.CSourceViewerConfiguration;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.text.source.SourceViewer;
import org.eclipse.jface.util.Assert;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Font;
public class CSourcePreviewerUpdater {
private CSourcePreviewerUpdater() {
}
/**
* Creates a Java source preview updater for the given viewer, configuration and preference store.
*
* @param viewer the viewer
* @param configuration the configuration
* @param preferenceStore the preference store
*/
static public void registerPreviewer(final SourceViewer viewer, final CSourceViewerConfiguration configuration, final IPreferenceStore preferenceStore) {
Assert.isNotNull(viewer);
Assert.isNotNull(configuration);
Assert.isNotNull(preferenceStore);
final IPropertyChangeListener fontChangeListener= new IPropertyChangeListener() {
/*
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty().equals(JFaceResources.TEXT_FONT)) {
Font font= JFaceResources.getTextFont();
viewer.getTextWidget().setFont(font);
}
}
};
final IPropertyChangeListener propertyChangeListener= new IPropertyChangeListener() {
/*
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent event) {
if (configuration.affectsBehavior(event)) {
configuration.adaptToPreferenceChange(event);
viewer.invalidateTextPresentation();
}
}
};
viewer.getTextWidget().addDisposeListener(new DisposeListener() {
/*
* @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
*/
public void widgetDisposed(DisposeEvent e) {
preferenceStore.removePropertyChangeListener(propertyChangeListener);
JFaceResources.getFontRegistry().removeListener(fontChangeListener);
}
});
JFaceResources.getFontRegistry().addListener(fontChangeListener);
preferenceStore.addPropertyChangeListener(propertyChangeListener);
}
}

View file

@ -73,6 +73,9 @@ public class CodeAssistPreferencePage extends AbstractPreferencePage {
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
protected Control createContents(Composite parent) {
fOverlayStore.load();
fOverlayStore.start();
Composite contentAssistComposite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
@ -140,6 +143,8 @@ public class CodeAssistPreferencePage extends AbstractPreferencePage {
// label= PreferencesMessages.getString("CEditorPreferencePage.ContentAssistPage.parameterForegroundColor");
// addColorButton(contentAssistComposite, label, ContentAssistPreference.PARAMETERS_FOREGROUND, 0);
initializeFields();
PlatformUI.getWorkbench().getHelpSystem().setHelp(contentAssistComposite, ICHelpContextIds.C_EDITOR_CONTENT_ASSIST_PREF_PAGE);
return contentAssistComposite;

View file

@ -49,7 +49,7 @@ import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.source.IAnnotationHover;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
@ -422,6 +422,20 @@ public class CSourceViewerConfiguration extends TextSourceViewerConfiguration {
}
public boolean affectsBehavior(PropertyChangeEvent event) {
return fTextTools.affectsBehavior(event);
}
/**
* Adapts the behavior of the contained components to the change
* encoded in the given event.
*
* @param event the event to whch to adapt
*/
public void adaptToPreferenceChange(PropertyChangeEvent event) {
fTextTools.adaptToPreferenceChange(event);
}
protected IPreferenceStore getPreferenceStore() {
return CUIPlugin.getDefault().getPreferenceStore();
}

View file

@ -228,7 +228,7 @@ public class CTextTools {
*
* @param event the event to whch to adapt
*/
protected void adaptToPreferenceChange(PropertyChangeEvent event) {
public void adaptToPreferenceChange(PropertyChangeEvent event) {
if (fCodeScanner.affectsBehavior(event))
fCodeScanner.adaptToPreferenceChange(event);
if (fCppCodeScanner.affectsBehavior(event))

View file

@ -34,7 +34,6 @@ import org.eclipse.cdt.internal.ui.CElementAdapterFactory;
import org.eclipse.cdt.internal.ui.ICStatusConstants;
import org.eclipse.cdt.internal.ui.IContextMenuConstants;
import org.eclipse.cdt.internal.ui.ResourceAdapterFactory;
import org.eclipse.cdt.internal.ui.browser.typehierarchy.ITypeHierarchyViewPart;
import org.eclipse.cdt.internal.ui.buildconsole.BuildConsoleManager;
import org.eclipse.cdt.internal.ui.editor.CDocumentProvider;
import org.eclipse.cdt.internal.ui.editor.CustomBufferFactory;