1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00

Bug 515296: Cosmetics.

Change-Id: I25996dc6fe1b4f3f01de4089e6322fd39009ab03
This commit is contained in:
Jonah Graham 2017-04-20 09:34:11 +01:00
parent 4a7088a1c1
commit 546a5a6c91

View file

@ -50,7 +50,8 @@ import org.eclipse.ui.ide.dialogs.EncodingFieldEditor;
import org.osgi.service.prefs.BackingStoreException; import org.osgi.service.prefs.BackingStoreException;
/** /**
* Preference page for debug preferences that apply specifically to C/C++ Debugging. * Preference page for debug preferences that apply specifically to C/C++
* Debugging.
*/ */
public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
@ -69,10 +70,10 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
private boolean fHasStateChanged = false; private boolean fHasStateChanged = false;
@Override @Override
public void propertyChange( PropertyChangeEvent event ) { public void propertyChange(PropertyChangeEvent event) {
if ( event.getProperty().equals( ICDebugPreferenceConstants.PREF_SHOW_HEX_VALUES ) ) { if (event.getProperty().equals(ICDebugPreferenceConstants.PREF_SHOW_HEX_VALUES)) {
fHasStateChanged = true; fHasStateChanged = true;
} else if ( event.getProperty().equals( ICDebugPreferenceConstants.PREF_SHOW_CHAR_VALUES ) ) { } else if (event.getProperty().equals(ICDebugPreferenceConstants.PREF_SHOW_CHAR_VALUES)) {
fHasStateChanged = true; fHasStateChanged = true;
} else if (event.getProperty().equals(FieldEditor.VALUE)) { } else if (event.getProperty().equals(FieldEditor.VALUE)) {
fHasStateChanged = true; fHasStateChanged = true;
@ -99,40 +100,36 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
*/ */
public CDebugPreferencePage() { public CDebugPreferencePage() {
super(); super();
setPreferenceStore( CDebugUIPlugin.getDefault().getPreferenceStore() ); setPreferenceStore(CDebugUIPlugin.getDefault().getPreferenceStore());
getPreferenceStore().addPropertyChangeListener( getPropertyChangeListener() ); getPreferenceStore().addPropertyChangeListener(getPropertyChangeListener());
setDescription( PreferenceMessages.getString( "CDebugPreferencePage.3" ) ); //$NON-NLS-1$ setDescription(PreferenceMessages.getString("CDebugPreferencePage.3")); //$NON-NLS-1$
} }
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.preference.PreferencePage#createContents(Composite)
*/
@Override @Override
protected Control createContents( Composite parent ) { protected Control createContents(Composite parent) {
getWorkbench().getHelpSystem().setHelp( getControl(), ICDebugHelpContextIds.C_DEBUG_PREFERENCE_PAGE ); getWorkbench().getHelpSystem().setHelp(getControl(), ICDebugHelpContextIds.C_DEBUG_PREFERENCE_PAGE);
//The main composite // The main composite
Composite composite = new Composite( parent, SWT.NULL ); Composite composite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout(); GridLayout layout = new GridLayout();
layout.numColumns = 1; layout.numColumns = 1;
layout.marginHeight = 0; layout.marginHeight = 0;
layout.marginWidth = 0; layout.marginWidth = 0;
composite.setLayout( layout ); composite.setLayout(layout);
GridData data = new GridData(); GridData data = new GridData();
data.verticalAlignment = GridData.FILL; data.verticalAlignment = GridData.FILL;
data.horizontalAlignment = GridData.FILL; data.horizontalAlignment = GridData.FILL;
composite.setLayoutData( data ); composite.setLayoutData(data);
createSpacer( composite, 1 ); createSpacer(composite, 1);
createCharsetSettingPreferences( composite ); createCharsetSettingPreferences(composite);
createSpacer( composite, 1 ); createSpacer(composite, 1);
createBinarySettings( composite ); createBinarySettings(composite);
setValues(); setValues();
return composite; return composite;
} }
/** /**
* Set the values of the component widgets based on the values in the preference store * Set the values of the component widgets based on the values in the
* preference store
*/ */
private void setValues() { private void setValues() {
// Set the charset editors. // Set the charset editors.
@ -141,38 +138,47 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
PreferenceStore ps = new PreferenceStore(); PreferenceStore ps = new PreferenceStore();
// Get the default charset and the default wide charset. // Get the default charset and the default wide charset.
String defaultCharset = DefaultScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).get(ICDebugConstants.PREF_DEBUG_CHARSET, null); String defaultCharset = DefaultScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID)
.get(ICDebugConstants.PREF_DEBUG_CHARSET, null);
if (defaultCharset != null) { if (defaultCharset != null) {
ps.setDefault(ICDebugConstants.PREF_DEBUG_CHARSET, defaultCharset); ps.setDefault(ICDebugConstants.PREF_DEBUG_CHARSET, defaultCharset);
} }
String defaultWideCharset = DefaultScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).get(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, null); String defaultWideCharset = DefaultScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID)
.get(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, null);
if (defaultWideCharset != null) { if (defaultWideCharset != null) {
ps.setDefault(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, defaultWideCharset); ps.setDefault(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, defaultWideCharset);
} }
// Get the charset and the wide charset. If they're unset, use the default instead. /*
// Note that we have to call the setValue() function of the PreferenceStore even if we * Get the charset and the wide charset. If they're unset, use the
// want to use the default. This is to ensure proper display of the encoding field editor. * default instead. Note that we have to call the setValue() function of
String charset = InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).get(ICDebugConstants.PREF_DEBUG_CHARSET, null); * the PreferenceStore even if we want to use the default. This is to
* ensure proper display of the encoding field editor.
*/
String charset = InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID)
.get(ICDebugConstants.PREF_DEBUG_CHARSET, null);
if (charset != null) { if (charset != null) {
ps.setValue(ICDebugConstants.PREF_DEBUG_CHARSET, charset); ps.setValue(ICDebugConstants.PREF_DEBUG_CHARSET, charset);
} else if (defaultCharset != null) { } else if (defaultCharset != null) {
ps.setValue(ICDebugConstants.PREF_DEBUG_CHARSET, defaultCharset); ps.setValue(ICDebugConstants.PREF_DEBUG_CHARSET, defaultCharset);
} }
String wideCharset = InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).get(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, null); String wideCharset = InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID)
.get(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, null);
if (wideCharset != null) { if (wideCharset != null) {
ps.setValue(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, wideCharset); ps.setValue(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, wideCharset);
} else if (defaultWideCharset != null) { } else if (defaultWideCharset != null) {
ps.setValue(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, defaultWideCharset); ps.setValue(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, defaultWideCharset);
} }
// Initialize the encoding field editors with the values from the preference store. // Initialize the encoding field editors with the values from the
// preference store.
fCharsetEditor.setPreferenceStore(ps); fCharsetEditor.setPreferenceStore(ps);
fCharsetEditor.load(); fCharsetEditor.load();
fWideCharsetEditor.setPreferenceStore(ps); fWideCharsetEditor.setPreferenceStore(ps);
fWideCharsetEditor.load(); fWideCharsetEditor.load();
// Tell the encoding field editors to check the "Default" option if we're currently using the default values. // Tell the encoding field editors to check the "Default" option if
// we're currently using the default values.
if (charset == null) { if (charset == null) {
fCharsetEditor.loadDefault(); fCharsetEditor.loadDefault();
} }
@ -180,23 +186,18 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
fWideCharsetEditor.loadDefault(); fWideCharsetEditor.loadDefault();
} }
// Set the values for the remaining preferences. // Set the values for the remaining preferences.
fShowBinarySourceFilesButton.setSelection(Platform.getPreferencesService().getBoolean(CCorePlugin.PLUGIN_ID, CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, true, null)); fShowBinarySourceFilesButton.setSelection(Platform.getPreferencesService().getBoolean(CCorePlugin.PLUGIN_ID,
CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, true, null));
} }
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(IWorkbench)
*/
@Override @Override
public void init( IWorkbench workbench ) { public void init(IWorkbench workbench) {
fWorkbench = workbench; fWorkbench = workbench;
} }
protected PropertyChangeListener getPropertyChangeListener() { protected PropertyChangeListener getPropertyChangeListener() {
if ( fPropertyChangeListener == null ) { if (fPropertyChangeListener == null) {
fPropertyChangeListener = new PropertyChangeListener(); fPropertyChangeListener = new PropertyChangeListener();
} }
return fPropertyChangeListener; return fPropertyChangeListener;
@ -205,66 +206,64 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
/** /**
* Set the default preferences for this page. * Set the default preferences for this page.
*/ */
public static void initDefaults( IPreferenceStore store ) { public static void initDefaults(IPreferenceStore store) {
store.setDefault( ICDebugPreferenceConstants.PREF_SHOW_HEX_VALUES, false ); store.setDefault(ICDebugPreferenceConstants.PREF_SHOW_HEX_VALUES, false);
} }
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#dispose()
*/
@Override @Override
public void dispose() { public void dispose() {
super.dispose(); super.dispose();
getPreferenceStore().removePropertyChangeListener( getPropertyChangeListener() ); getPreferenceStore().removePropertyChangeListener(getPropertyChangeListener());
} }
private void createCharsetSettingPreferences( Composite parent ) { private void createCharsetSettingPreferences(Composite parent) {
// Create containing composite // Create containing composite
Composite formatComposite = ControlFactory.createComposite( parent, 2); Composite formatComposite = ControlFactory.createComposite(parent, 2);
((GridLayout)formatComposite.getLayout()).marginWidth = 0; ((GridLayout) formatComposite.getLayout()).marginWidth = 0;
((GridLayout)formatComposite.getLayout()).marginHeight = 0; ((GridLayout) formatComposite.getLayout()).marginHeight = 0;
// Create charset editor // Create charset editor
Composite charsetComposite = ControlFactory.createComposite(formatComposite, 1); Composite charsetComposite = ControlFactory.createComposite(formatComposite, 1);
fCharsetEditor = new EncodingFieldEditor(ICDebugConstants.PREF_DEBUG_CHARSET, "", PreferenceMessages.getString( "CDebugPreferencePage.18" ), charsetComposite); //$NON-NLS-1$ //$NON-NLS-2$ fCharsetEditor = new EncodingFieldEditor(ICDebugConstants.PREF_DEBUG_CHARSET, "", //$NON-NLS-1$
PreferenceMessages.getString("CDebugPreferencePage.18"), charsetComposite); //$NON-NLS-1$
fCharsetEditor.setPropertyChangeListener(getPropertyChangeListener()); fCharsetEditor.setPropertyChangeListener(getPropertyChangeListener());
// Create wide charset editor // Create wide charset editor
Composite wideCharsetComposite = ControlFactory.createComposite(formatComposite, 1); Composite wideCharsetComposite = ControlFactory.createComposite(formatComposite, 1);
fWideCharsetEditor = new EncodingFieldEditor(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, "", PreferenceMessages.getString( "CDebugPreferencePage.16" ), wideCharsetComposite); //$NON-NLS-1$ //$NON-NLS-2$ fWideCharsetEditor = new EncodingFieldEditor(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, "", //$NON-NLS-1$
PreferenceMessages.getString("CDebugPreferencePage.16"), wideCharsetComposite); //$NON-NLS-1$
fWideCharsetEditor.setPropertyChangeListener(getPropertyChangeListener()); fWideCharsetEditor.setPropertyChangeListener(getPropertyChangeListener());
} }
private void createBinarySettings( Composite parent ) { private void createBinarySettings(Composite parent) {
fShowBinarySourceFilesButton = createCheckButton( parent, PreferenceMessages.getString("CDebugPreferencePage.15") ); //$NON-NLS-1$ fShowBinarySourceFilesButton = createCheckButton(parent,
PreferenceMessages.getString("CDebugPreferencePage.15")); //$NON-NLS-1$
} }
/** /**
* Creates a button with the given label and sets the default configuration data. * Creates a button with the given label and sets the default configuration
* data.
*/ */
private Button createCheckButton( Composite parent, String label ) { private Button createCheckButton(Composite parent, String label) {
Button button = new Button( parent, SWT.CHECK | SWT.LEFT ); Button button = new Button(parent, SWT.CHECK | SWT.LEFT);
button.setText( label ); button.setText(label);
// FieldEditor GridData // FieldEditor GridData
GridData data = new GridData(); GridData data = new GridData();
button.setLayoutData( data ); button.setLayoutData(data);
return button; return button;
} }
protected void createSpacer( Composite composite, int columnSpan ) { protected void createSpacer(Composite composite, int columnSpan) {
Label label = new Label( composite, SWT.NONE ); Label label = new Label(composite, SWT.NONE);
GridData gd = new GridData(); GridData gd = new GridData();
gd.horizontalSpan = columnSpan; gd.horizontalSpan = columnSpan;
label.setLayoutData( gd ); label.setLayoutData(gd);
} }
/* (non-Javadoc)
* @see org.eclipse.jface.preference.IPreferencePage#performOk()
*/
@Override @Override
public boolean performOk() { public boolean performOk() {
storeValues(); storeValues();
if ( getPropertyChangeListener().hasStateChanged() ) { if (getPropertyChangeListener().hasStateChanged()) {
refreshViews(); refreshViews();
} }
@ -278,39 +277,40 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
} }
/** /**
* Refresh the variables and expression views as changes have occurred that affects these views. * Refresh the variables and expression views as changes have occurred that
* affects these views.
*/ */
private void refreshViews() { private void refreshViews() {
BusyIndicator.showWhile( getShell().getDisplay(), new Runnable() { BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
@Override @Override
public void run() { public void run() {
// Refresh interested views // Refresh interested views
IWorkbenchWindow[] windows = CDebugUIPlugin.getDefault().getWorkbench().getWorkbenchWindows(); IWorkbenchWindow[] windows = CDebugUIPlugin.getDefault().getWorkbench().getWorkbenchWindows();
IWorkbenchPage page = null; IWorkbenchPage page = null;
for( int i = 0; i < windows.length; i++ ) { for (int i = 0; i < windows.length; i++) {
page = windows[i].getActivePage(); page = windows[i].getActivePage();
if ( page != null ) { if (page != null) {
refreshViews( page, IDebugUIConstants.ID_EXPRESSION_VIEW ); refreshViews(page, IDebugUIConstants.ID_EXPRESSION_VIEW);
refreshViews( page, IDebugUIConstants.ID_VARIABLE_VIEW ); refreshViews(page, IDebugUIConstants.ID_VARIABLE_VIEW);
refreshViews( page, IDebugUIConstants.ID_REGISTER_VIEW ); refreshViews(page, IDebugUIConstants.ID_REGISTER_VIEW);
} }
} }
} }
} ); });
} }
/** /**
* Refresh all views in the given workbench page with the given view id * Refresh all views in the given workbench page with the given view id
*/ */
protected void refreshViews( IWorkbenchPage page, String viewID ) { protected void refreshViews(IWorkbenchPage page, String viewID) {
IViewPart part = page.findView( viewID ); IViewPart part = page.findView(viewID);
if ( part != null ) { if (part != null) {
IDebugView adapter = part.getAdapter( IDebugView.class ); IDebugView adapter = part.getAdapter(IDebugView.class);
if ( adapter != null ) { if (adapter != null) {
Viewer viewer = adapter.getViewer(); Viewer viewer = adapter.getViewer();
if ( viewer instanceof StructuredViewer ) { if (viewer instanceof StructuredViewer) {
((StructuredViewer)viewer).refresh(); ((StructuredViewer) viewer).refresh();
} }
} }
} }
@ -325,7 +325,8 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).remove(ICDebugConstants.PREF_DEBUG_CHARSET); InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).remove(ICDebugConstants.PREF_DEBUG_CHARSET);
} else { } else {
fCharsetEditor.store(); fCharsetEditor.store();
InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).put(ICDebugConstants.PREF_DEBUG_CHARSET, fCharsetEditor.getPreferenceStore().getString(ICDebugConstants.PREF_DEBUG_CHARSET)); InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).put(ICDebugConstants.PREF_DEBUG_CHARSET,
fCharsetEditor.getPreferenceStore().getString(ICDebugConstants.PREF_DEBUG_CHARSET));
} }
// Store the wide charset. // Store the wide charset.
@ -333,11 +334,13 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).remove(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET); InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).remove(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET);
} else { } else {
fWideCharsetEditor.store(); fWideCharsetEditor.store();
InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).put(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET, fWideCharsetEditor.getPreferenceStore().getString(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET)); InstanceScope.INSTANCE.getNode(CDebugCorePlugin.PLUGIN_ID).put(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET,
fWideCharsetEditor.getPreferenceStore().getString(ICDebugConstants.PREF_DEBUG_WIDE_CHARSET));
} }
// Store the other preferences. // Store the other preferences.
InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).putBoolean(CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, fShowBinarySourceFilesButton.getSelection()); InstanceScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).putBoolean(
CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, fShowBinarySourceFilesButton.getSelection());
} }
/** /**
@ -354,7 +357,8 @@ public class CDebugPreferencePage extends PreferencePage implements IWorkbenchPr
private void setDefaultValues() { private void setDefaultValues() {
fCharsetEditor.loadDefault(); fCharsetEditor.loadDefault();
fWideCharsetEditor.loadDefault(); fWideCharsetEditor.loadDefault();
fShowBinarySourceFilesButton.setSelection(DefaultScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID).getBoolean(CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, true)); fShowBinarySourceFilesButton.setSelection(DefaultScope.INSTANCE.getNode(CCorePlugin.PLUGIN_ID)
.getBoolean(CCorePreferenceConstants.SHOW_SOURCE_FILES_IN_BINARIES, true));
} }
private IWorkbench getWorkbench() { private IWorkbench getWorkbench() {