diff options
author | Bogdan Gheorghe | 2004-06-11 18:38:39 +0000 |
---|---|---|
committer | Bogdan Gheorghe | 2004-06-11 18:38:39 +0000 |
commit | b2719be9c55bf8783b265036c3e5b61aa7774932 (patch) | |
tree | cf9241a3f28367a65b6ec26fe35ca07d7261cffd | |
parent | 75fee20f69852f5219e039afb6665d56da8886f9 (diff) | |
download | org.eclipse.cdt-b2719be9c55bf8783b265036c3e5b61aa7774932.tar.gz org.eclipse.cdt-b2719be9c55bf8783b265036c3e5b61aa7774932.tar.xz org.eclipse.cdt-b2719be9c55bf8783b265036c3e5b61aa7774932.zip |
Fix for Bug 65132: Deletion of "Work In Progress" preferences
7 files changed, 247 insertions, 72 deletions
diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index c50ecacbdc0..5aa9989d6c4 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,6 @@ +2004-06-11 Bogdan Gheorghe + Fix for Bug 66016: Moved search related items from work in progress to search page + 2004-06-10 Bogdan Gheorghe Fix for Bug 65132: moving folder onto itself deletes entire project diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties index e1769ede15c..b4ef4679b25 100644 --- a/core/org.eclipse.cdt.ui/plugin.properties +++ b/core/org.eclipse.cdt.ui/plugin.properties @@ -150,6 +150,8 @@ HideHeaderFiles.description= Hides all Header files WorkInProgress.name=Work In Progress +CDTSearch.name=Search + CDTIndexerProperty.name=C/C++ Indexer CDTFileTypesProperty.name=C/C++ File Types diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index 6e49f8d9edc..7e6b0ba4ef0 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -379,6 +379,11 @@ class="org.eclipse.cdt.internal.ui.preferences.CFileTypesPreferencePage" id="org.eclipse.cdt.ui.preferences.CFileTypesPreferences"> </page> + <page + class="org.eclipse.cdt.internal.ui.preferences.CSearchPreferencePage" + category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage" + name="%CDTSearch.name" + id="org.eclipse.cdt.ui.preferences.CSearchPreferencePage"/> <!--page name="%WorkInProgress.name" category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage" diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java new file mode 100644 index 00000000000..966a18eec90 --- /dev/null +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CSearchPreferencePage.java @@ -0,0 +1,233 @@ +/********************************************************************** +Copyright (c) 2002, 2004 IBM Rational Software 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: + IBM Rational Software - Initial Contribution +**********************************************************************/ + +package org.eclipse.cdt.internal.ui.preferences; + +import java.util.ArrayList; + +import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.internal.core.search.indexing.SourceIndexer; +import org.eclipse.cdt.internal.ui.search.CSearchPage; +import org.eclipse.cdt.ui.CUIPlugin; +import org.eclipse.cdt.utils.ui.controls.ControlFactory; +import org.eclipse.core.runtime.Preferences; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferencePage; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; + +public class CSearchPreferencePage extends PreferencePage + implements + IWorkbenchPreferencePage { + + private Combo fExternLinks; + private Button fExternEnabled; + + protected OverlayPreferenceStore fOverlayStore; + private Text fTextControl; + + private static final String TIMEOUT_VALUE = "20000"; //$NON-NLS-1$ + + public CSearchPreferencePage(){ + setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore()); + fOverlayStore = createOverlayStore(); + } + + private OverlayPreferenceStore createOverlayStore() { + ArrayList overlayKeys = new ArrayList(); + overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, CSearchPage.EXTERNALMATCH_ENABLED)); + overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, CSearchPage.EXTERNALMATCH_VISIBLE)); + overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, SourceIndexer.CDT_INDEXER_TIMEOUT)); + + OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()]; + overlayKeys.toArray(keys); + return new OverlayPreferenceStore(getPreferenceStore(), keys); + } + + + /* (non-Javadoc) + * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) + */ + protected Control createContents(Composite parent) { + fOverlayStore.load(); + fOverlayStore.start(); + + initializeDialogUnits(parent); + + Composite result= new Composite(parent, SWT.NONE); + GridLayout layout= new GridLayout(); + layout.marginHeight= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); + layout.marginWidth= 0; + layout.verticalSpacing= convertVerticalDLUsToPixels(10); + layout.horizontalSpacing= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); + result.setLayout(layout); + + Group group= new Group(result, SWT.NONE); + group.setLayout(new GridLayout()); + group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + group.setText(PreferencesMessages.getString("CSearchPreferences.ExternalSearchLinks.ExternalSearchLinksGroup")); //$NON-NLS-1$ + + fExternEnabled = createCheckButton(group, PreferencesMessages.getString("CSearchPreferences.ExternalSearchLinks.EnableMessage")); //$NON-NLS-1$ + fExternEnabled.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + Button button = (Button) e.widget; + boolean externLinkEnabled = false; + fExternLinks.setEnabled(false); + if (button.getSelection()){ + fExternLinks.setEnabled(true); + externLinkEnabled = true; + } + + fOverlayStore.setValue(CSearchPage.EXTERNALMATCH_ENABLED, externLinkEnabled); + } + }); + + fExternLinks = createComboBox(group,PreferencesMessages.getString("CSearchPreferences.ExternalSearchLinks.EnableMarkerLinkType"),new String[]{PreferencesMessages.getString("CSearchPreferences.ExternalSearchLinks.Visible"),PreferencesMessages.getString("CSearchPreferences.ExternalSearchLinks.Invisible")},PreferencesMessages.getString("CSearchPreferences.ExternalSearchLinks.Invisible")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + fExternLinks.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + Combo combo = (Combo) e.widget; + fOverlayStore.setValue(CSearchPage.EXTERNALMATCH_VISIBLE, combo.getSelectionIndex()); + } + }); + + Group indexerTimeoutGroup= new Group(result, SWT.NONE); + indexerTimeoutGroup.setLayout(new GridLayout()); + indexerTimeoutGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + indexerTimeoutGroup.setText(PreferencesMessages.getString("CSearchPreferences.IndexerTimeout.IndexerTimeoutGroup")); //$NON-NLS-1$ + + fTextControl = (Text) addTextField( indexerTimeoutGroup, PreferencesMessages.getString("CSearchPreferences.IndexerTimeout.Timeout"),"TimeOut",6,0,true); //$NON-NLS-1$ //$NON-NLS-2$ + + initialize(); + + return result; + + } + + private void initialize(){ + boolean extEnabled = fOverlayStore.getBoolean(CSearchPage.EXTERNALMATCH_ENABLED); + fExternEnabled.setSelection(extEnabled); + + fExternLinks.select(fOverlayStore.getInt(CSearchPage.EXTERNALMATCH_VISIBLE)); + fExternLinks.setEnabled(extEnabled); + + fTextControl.setText(fOverlayStore.getString(SourceIndexer.CDT_INDEXER_TIMEOUT)); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) + */ + public void init(IWorkbench workbench) { + // TODO Auto-generated method stub + } + + /** + * Creates a button with the given label and sets the default + * configuration data. + */ + private Combo createComboBox( Composite parent, String label, String[] items, String selection ) + { + ControlFactory.createLabel( parent, label ); + Combo combo = ControlFactory.createSelectCombo( parent, items, selection ); + combo.setLayoutData( new GridData() ); + return combo; + } + /** + * Creates a button with the given label and sets the default + * configuration data. + */ + private Button createCheckButton( Composite parent, String label ) + { + Button button = new Button( parent, SWT.CHECK | SWT.LEFT ); + button.setText( label ); + // FieldEditor GridData + GridData data = new GridData(); + button.setLayoutData( data ); + return button; + } + + private Control addTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) { + + Label labelControl = new Label(composite, SWT.NONE); + labelControl.setText(label); + 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); + textControl.setLayoutData(gd); + textControl.setTextLimit(textLimit); + + return textControl; + } + + /* + * @see IPreferencePage#performOk() + */ + public boolean performOk() { + + String timeOut = fTextControl.getText(); + try { + // Check the string number + Integer.parseInt(timeOut); + } catch (NumberFormatException ex){ + timeOut = TIMEOUT_VALUE; + } + + fOverlayStore.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT, timeOut); + fOverlayStore.propagate(); + +// Store IProblem Marker value in CCorePlugin Preferences + Preferences prefs = CCorePlugin.getDefault().getPluginPreferences(); + + prefs.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT,timeOut); + CCorePlugin.getDefault().savePluginPreferences(); + + return true; + } + + /** + * @param store + */ + public static void initDefaults(IPreferenceStore store) { + store.setDefault(CSearchPage.EXTERNALMATCH_ENABLED, true); + store.setDefault(CSearchPage.EXTERNALMATCH_VISIBLE, 1); + store.setDefault(SourceIndexer.CDT_INDEXER_TIMEOUT,TIMEOUT_VALUE); + } + + /* + * @see PreferencePage#performDefaults() + */ + protected void performDefaults() { + fOverlayStore.loadDefaults(); + initialize(); + super.performDefaults(); + } + +} diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties index 5b815634f95..cee7ba617b7 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties @@ -168,6 +168,7 @@ CEditorHoverConfigurationBlock.showAffordance= &Show affordance in hover on how #Search Preferences CSearchPreferences.ExternalSearchLinks.ExternalSearchLinksGroup=External Search Links CSearchPreferences.ExternalSearchLinks.EnableMarkerLinkType=Enable Marker Link Type +CSearchPreferences.ExternalSearchLinks.EnableMessage=Enable external search markers CSearchPreferences.ExternalSearchLinks.Visible=Visible CSearchPreferences.ExternalSearchLinks.Invisible=Invisible CSearchPreferences.IndexerTimeout.IndexerTimeoutGroup=Indexer Timeout diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java index 30de0f2742d..30d9074db3a 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/WorkInProgressPreferencePage.java @@ -43,17 +43,9 @@ public class WorkInProgressPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - private Combo fExternLinks; - private Button fExternEnabled; - private Button fIProblemMarkers; private Button fBackgroundTypeCacheEnabled; - - protected OverlayPreferenceStore fOverlayStore; - private Text fTextControl; - - private static final String TIMEOUT_VALUE = "20000"; //$NON-NLS-1$ - + public WorkInProgressPreferencePage(){ setPreferenceStore(CUIPlugin.getDefault().getPreferenceStore()); fOverlayStore = createOverlayStore(); @@ -89,45 +81,6 @@ public class WorkInProgressPreferencePage extends PreferencePage layout.horizontalSpacing= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); result.setLayout(layout); - Group group= new Group(result, SWT.NONE); - group.setLayout(new GridLayout()); - group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - group.setText("External Search Links"); //$NON-NLS-1$ - - fExternEnabled = createCheckButton(group, "Enable external search markers"); //$NON-NLS-1$ - fExternEnabled.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - } - public void widgetSelected(SelectionEvent e) { - Button button = (Button) e.widget; - boolean externLinkEnabled = false; - fExternLinks.setEnabled(false); - if (button.getSelection()){ - fExternLinks.setEnabled(true); - externLinkEnabled = true; - } - - fOverlayStore.setValue(CSearchPage.EXTERNALMATCH_ENABLED, externLinkEnabled); - } - }); - - fExternLinks = createComboBox(group,"External Marker Link Type",new String[]{"Visible","Invisible"},"Visible"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - fExternLinks.addSelectionListener(new SelectionListener() { - public void widgetDefaultSelected(SelectionEvent e) { - } - public void widgetSelected(SelectionEvent e) { - Combo combo = (Combo) e.widget; - fOverlayStore.setValue(CSearchPage.EXTERNALMATCH_VISIBLE, combo.getSelectionIndex()); - } - }); - - Group indexerTimeoutGroup= new Group(result, SWT.NONE); - indexerTimeoutGroup.setLayout(new GridLayout()); - indexerTimeoutGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - indexerTimeoutGroup.setText("Indexer Timeout"); //$NON-NLS-1$ - - fTextControl = (Text) addTextField( indexerTimeoutGroup, "Time out (ms)","TimeOut",6,0,true); //$NON-NLS-1$ //$NON-NLS-2$ - Group backgroundTypeCacheGroup= new Group(result, SWT.NONE); backgroundTypeCacheGroup.setLayout(new GridLayout()); backgroundTypeCacheGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); @@ -155,14 +108,6 @@ public class WorkInProgressPreferencePage extends PreferencePage } private void initialize(){ - boolean extEnabled = fOverlayStore.getBoolean(CSearchPage.EXTERNALMATCH_ENABLED); - fExternEnabled.setSelection(extEnabled); - - fExternLinks.select(fOverlayStore.getInt(CSearchPage.EXTERNALMATCH_VISIBLE)); - fExternLinks.setEnabled(extEnabled); - - fTextControl.setText(fOverlayStore.getString(SourceIndexer.CDT_INDEXER_TIMEOUT)); - fBackgroundTypeCacheEnabled.setSelection(fOverlayStore.getBoolean(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE)); } @@ -220,25 +165,12 @@ public class WorkInProgressPreferencePage extends PreferencePage */ public boolean performOk() { - String timeOut = fTextControl.getText(); - try { - // Check the string number - Integer.parseInt(timeOut); - } catch (NumberFormatException ex){ - timeOut = TIMEOUT_VALUE; - } - - fOverlayStore.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT, timeOut); - fOverlayStore.propagate(); // Store IProblem Marker value in CCorePlugin Preferences Preferences prefs = CCorePlugin.getDefault().getPluginPreferences(); - prefs.setValue(SourceIndexer.CDT_INDEXER_TIMEOUT,timeOut); - prefs.setValue(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE, fOverlayStore.getString(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE)); - CCorePlugin.getDefault().savePluginPreferences(); return true; @@ -248,9 +180,6 @@ public class WorkInProgressPreferencePage extends PreferencePage * @param store */ public static void initDefaults(IPreferenceStore store) { - store.setDefault(CSearchPage.EXTERNALMATCH_ENABLED, false); - store.setDefault(CSearchPage.EXTERNALMATCH_VISIBLE, 0); - store.setDefault(SourceIndexer.CDT_INDEXER_TIMEOUT,TIMEOUT_VALUE); store.setDefault(AllTypesCache.ENABLE_BACKGROUND_TYPE_CACHE, false); } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java index c4999f8296c..2e96f656afb 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPreferenceInitializer.java @@ -14,6 +14,7 @@ import org.eclipse.cdt.internal.ui.cview.CView; import org.eclipse.cdt.internal.ui.preferences.BuildConsolePreferencePage; import org.eclipse.cdt.internal.ui.preferences.CEditorPreferencePage; import org.eclipse.cdt.internal.ui.preferences.CPluginPreferencePage; +import org.eclipse.cdt.internal.ui.preferences.CSearchPreferencePage; import org.eclipse.cdt.internal.ui.preferences.WorkInProgressPreferencePage; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.jface.preference.IPreferenceStore; @@ -40,6 +41,7 @@ public class CUIPreferenceInitializer extends AbstractPreferenceInitializer { CPluginPreferencePage.initDefaults(store); BuildConsolePreferencePage.initDefaults(store); WorkInProgressPreferencePage.initDefaults(store); + CSearchPreferencePage.initDefaults(store); CView.initDefaults(store); CEditorPreferencePage.initDefaults(store); } |