mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-06 01:06:01 +02:00
Added the "Automatically refresh registers" and "Automatically refresh shared libraries" preferences and properties.
This commit is contained in:
parent
92f36abdce
commit
f4f6cc774e
11 changed files with 586 additions and 19 deletions
|
@ -0,0 +1,3 @@
|
|||
#Mon Nov 08 18:15:08 EST 2004
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/org/eclipse/cdt/debug/mi/internal/ui/propertypages/PropertyMessages.properties=8859_1
|
|
@ -1,3 +1,17 @@
|
|||
2004-11-08 Mikhail Khodjaiants
|
||||
Added the "Automatically refresh registers" and "Automatically refresh shared libraries"
|
||||
preferences and properties.
|
||||
* ActionFilterAdapterFactory.java: new
|
||||
* GDBTargetActionFilter.java: new
|
||||
* PreferenceMessages.properties
|
||||
* MIPreferencePage.java
|
||||
* org.eclipse.cdt.debug.mi.internal.ui.propertypages: new package
|
||||
* PropertyMessages.properties
|
||||
* OptionsPropertyPage.java
|
||||
* PropertyMessages.java
|
||||
* plugin.properties
|
||||
* plugin.xml
|
||||
|
||||
2004-10-29 Alain Magloire
|
||||
Changes to the CDI interface
|
||||
* SeAutoSolibActionDelegate.java
|
||||
|
|
|
@ -15,3 +15,5 @@ MIPreferencePage.name=GDB MI
|
|||
|
||||
SetAutoSolibAction.label=Automatically Load Shared Libraries
|
||||
SetAutoSolibAction.tooltip=Automatically Load Shared Libraries On/Off
|
||||
|
||||
TargetOptionsPage.label=GDB/MI Options
|
||||
|
|
|
@ -52,5 +52,25 @@
|
|||
id="org.eclipse.cdt.debug.mi.ui.MIPreferencePage">
|
||||
</page>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.propertyPages">
|
||||
<page
|
||||
objectClass="org.eclipse.cdt.debug.core.model.ICDebugTarget"
|
||||
class="org.eclipse.cdt.debug.mi.internal.ui.propertypages.OptionsPropertyPage"
|
||||
name="%TargetOptionsPage.label"
|
||||
id="org.eclipse.cdt.debug.mi.ui.propertypages.target.options">
|
||||
<filter
|
||||
value="isGDBTarget"
|
||||
name="GDBTargetActionFilter"/>
|
||||
</page>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.core.runtime.adapters">
|
||||
<factory
|
||||
class="org.eclipse.cdt.debug.mi.internal.ui.ActionFilterAdapterFactory"
|
||||
adaptableType="org.eclipse.cdt.debug.core.model.ICDebugTarget">
|
||||
<adapter type="org.eclipse.ui.IActionFilter"/>
|
||||
</factory>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
/**********************************************************************
|
||||
* Copyright (c) 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.debug.mi.internal.ui;
|
||||
|
||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
||||
import org.eclipse.core.runtime.IAdapterFactory;
|
||||
import org.eclipse.ui.IActionFilter;
|
||||
|
||||
/**
|
||||
* The UI adapter factory for GDB/MI Debug extensions
|
||||
*/
|
||||
public class ActionFilterAdapterFactory implements IAdapterFactory {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
|
||||
*/
|
||||
public Object getAdapter( Object adaptableObject, Class adapterType ) {
|
||||
if ( adapterType.isInstance( adaptableObject ) ) {
|
||||
return adaptableObject;
|
||||
}
|
||||
if ( adapterType == IActionFilter.class ) {
|
||||
if ( adaptableObject instanceof ICDebugTarget ) {
|
||||
return new GDBTargetActionFilter();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
|
||||
*/
|
||||
public Class[] getAdapterList() {
|
||||
return new Class[] {
|
||||
IActionFilter.class
|
||||
};
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/**********************************************************************
|
||||
* Copyright (c) 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.debug.mi.internal.ui;
|
||||
|
||||
import org.eclipse.cdt.debug.core.cdi.ICDISession;
|
||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
||||
import org.eclipse.cdt.debug.mi.core.cdi.Session;
|
||||
import org.eclipse.ui.IActionFilter;
|
||||
|
||||
/**
|
||||
* Comment for .
|
||||
*/
|
||||
public class GDBTargetActionFilter implements IActionFilter {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.IActionFilter#testAttribute(java.lang.Object, java.lang.String, java.lang.String)
|
||||
*/
|
||||
public boolean testAttribute( Object target, String name, String value ) {
|
||||
if ( target instanceof ICDebugTarget ) {
|
||||
if ( name.equals( "GDBTargetActionFilter" ) && value.equals( "isGDBTarget" ) ) { //$NON-NLS-1$//$NON-NLS-2$
|
||||
return ( ((ICDebugTarget)target).getAdapter( ICDISession.class ) instanceof Session );
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -11,12 +11,18 @@
|
|||
package org.eclipse.cdt.debug.mi.internal.ui.preferences;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import org.eclipse.cdt.debug.mi.core.IMIConstants;
|
||||
import org.eclipse.cdt.debug.mi.core.MIPlugin;
|
||||
import org.eclipse.cdt.debug.mi.internal.ui.IMIHelpContextIds;
|
||||
import org.eclipse.cdt.debug.mi.internal.ui.MIUIPlugin;
|
||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
||||
import org.eclipse.core.runtime.Preferences;
|
||||
import org.eclipse.jface.preference.BooleanFieldEditor;
|
||||
import org.eclipse.jface.preference.FieldEditor;
|
||||
import org.eclipse.jface.preference.IPreferencePage;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.preference.IntegerFieldEditor;
|
||||
import org.eclipse.jface.preference.PreferencePage;
|
||||
import org.eclipse.jface.preference.StringFieldEditor;
|
||||
|
@ -37,13 +43,267 @@ import org.eclipse.ui.help.WorkbenchHelp;
|
|||
*/
|
||||
public class MIPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
|
||||
|
||||
public class MIPreferenceStore implements IPreferenceStore {
|
||||
|
||||
private Preferences fPreferences;
|
||||
|
||||
private HashMap fListeners = new HashMap();
|
||||
|
||||
public MIPreferenceStore( Preferences pref ) {
|
||||
fPreferences = pref;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
|
||||
*/
|
||||
public void addPropertyChangeListener( final IPropertyChangeListener listener ) {
|
||||
Preferences.IPropertyChangeListener l = new Preferences.IPropertyChangeListener() {
|
||||
|
||||
public void propertyChange( org.eclipse.core.runtime.Preferences.PropertyChangeEvent event ) {
|
||||
listener.propertyChange( new PropertyChangeEvent( MIPreferenceStore.this, event.getProperty(), event.getNewValue(), event.getOldValue() ) );
|
||||
}
|
||||
};
|
||||
fListeners.put( listener, l );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#contains(java.lang.String)
|
||||
*/
|
||||
public boolean contains( String name ) {
|
||||
return getPreferences().contains( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(java.lang.String, java.lang.Object, java.lang.Object)
|
||||
*/
|
||||
public void firePropertyChangeEvent( String name, Object oldValue, Object newValue ) {
|
||||
Iterator it = fListeners.keySet().iterator();
|
||||
while( it.hasNext() ) {
|
||||
((IPropertyChangeListener)it.next()).propertyChange( new PropertyChangeEvent( this, name, oldValue, newValue ) );
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(java.lang.String)
|
||||
*/
|
||||
public boolean getBoolean( String name ) {
|
||||
return fPreferences.getBoolean( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(java.lang.String)
|
||||
*/
|
||||
public boolean getDefaultBoolean( String name ) {
|
||||
return fPreferences.getDefaultBoolean( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(java.lang.String)
|
||||
*/
|
||||
public double getDefaultDouble( String name ) {
|
||||
return fPreferences.getDefaultDouble( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(java.lang.String)
|
||||
*/
|
||||
public float getDefaultFloat( String name ) {
|
||||
return fPreferences.getDefaultFloat( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(java.lang.String)
|
||||
*/
|
||||
public int getDefaultInt( String name ) {
|
||||
return fPreferences.getDefaultInt( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(java.lang.String)
|
||||
*/
|
||||
public long getDefaultLong( String name ) {
|
||||
return fPreferences.getDefaultLong( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(java.lang.String)
|
||||
*/
|
||||
public String getDefaultString( String name ) {
|
||||
return fPreferences.getDefaultString( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDouble(java.lang.String)
|
||||
*/
|
||||
public double getDouble( String name ) {
|
||||
return fPreferences.getDouble( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getFloat(java.lang.String)
|
||||
*/
|
||||
public float getFloat( String name ) {
|
||||
return fPreferences.getFloat( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getInt(java.lang.String)
|
||||
*/
|
||||
public int getInt( String name ) {
|
||||
return fPreferences.getInt( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getLong(java.lang.String)
|
||||
*/
|
||||
public long getLong( String name ) {
|
||||
return fPreferences.getLong( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#getString(java.lang.String)
|
||||
*/
|
||||
public String getString( String name ) {
|
||||
return fPreferences.getString( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#isDefault(java.lang.String)
|
||||
*/
|
||||
public boolean isDefault( String name ) {
|
||||
return fPreferences.isDefault( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
|
||||
*/
|
||||
public boolean needsSaving() {
|
||||
return getPreferences().needsSaving();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#putValue(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public void putValue( String name, String value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
|
||||
*/
|
||||
public void removePropertyChangeListener( IPropertyChangeListener listener ) {
|
||||
fListeners.remove( listener );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, double)
|
||||
*/
|
||||
public void setDefault( String name, double value ) {
|
||||
getPreferences().setDefault( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, float)
|
||||
*/
|
||||
public void setDefault( String name, float value ) {
|
||||
getPreferences().setDefault( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, int)
|
||||
*/
|
||||
public void setDefault( String name, int value ) {
|
||||
getPreferences().setDefault( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, long)
|
||||
*/
|
||||
public void setDefault( String name, long value ) {
|
||||
getPreferences().setDefault( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public void setDefault( String name, String defaultObject ) {
|
||||
getPreferences().setDefault( name, defaultObject );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, boolean)
|
||||
*/
|
||||
public void setDefault( String name, boolean value ) {
|
||||
getPreferences().setDefault( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(java.lang.String)
|
||||
*/
|
||||
public void setToDefault( String name ) {
|
||||
getPreferences().setToDefault( name );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, double)
|
||||
*/
|
||||
public void setValue( String name, double value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, float)
|
||||
*/
|
||||
public void setValue( String name, float value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, int)
|
||||
*/
|
||||
public void setValue( String name, int value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, long)
|
||||
*/
|
||||
public void setValue( String name, long value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public void setValue( String name, String value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, boolean)
|
||||
*/
|
||||
public void setValue( String name, boolean value ) {
|
||||
getPreferences().setValue( name, value );
|
||||
}
|
||||
|
||||
protected Preferences getPreferences() {
|
||||
return fPreferences;
|
||||
}
|
||||
}
|
||||
|
||||
private final static String GDB_MI_HELP_CONTEXT = MIUIPlugin.PLUGIN_ID + "mi_preference_page_context"; //$NON-NLS-1$
|
||||
|
||||
// Debugger timeout preference widgets
|
||||
IntegerFieldEditor fDebugTimeoutText;
|
||||
private IntegerFieldEditor fDebugTimeoutText;
|
||||
|
||||
// Launch timeout preference widgets
|
||||
IntegerFieldEditor fLaunchTimeoutText;
|
||||
private IntegerFieldEditor fLaunchTimeoutText;
|
||||
|
||||
private BooleanFieldEditor fRefreshRegistersButton;
|
||||
|
||||
private BooleanFieldEditor fRefreshSolibsButton;
|
||||
|
||||
private MIPreferenceStore fMICorePreferenceStore = new MIPreferenceStore( MIPlugin.getDefault().getPluginPreferences() );
|
||||
|
||||
/**
|
||||
* Constructor for MIPreferencePage.
|
||||
|
@ -74,7 +334,6 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
composite.setLayoutData( data );
|
||||
createSpacer( composite, 1 );
|
||||
createCommunicationPreferences( composite );
|
||||
setValues();
|
||||
WorkbenchHelp.setHelp( composite, GDB_MI_HELP_CONTEXT );
|
||||
return composite;
|
||||
}
|
||||
|
@ -91,22 +350,15 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
return ControlFactory.createGroup( parent, labelText, numColumns );
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the values of the component widgets based on the values in the preference store
|
||||
*/
|
||||
private void setValues() {
|
||||
fDebugTimeoutText.setStringValue( new Integer( MIPlugin.getDefault().getPluginPreferences().getInt( IMIConstants.PREF_REQUEST_TIMEOUT ) ).toString() );
|
||||
fLaunchTimeoutText.setStringValue( new Integer( MIPlugin.getDefault().getPluginPreferences().getInt( IMIConstants.PREF_REQUEST_LAUNCH_TIMEOUT ) ).toString() );
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IPreferencePage#performOk()
|
||||
*/
|
||||
public boolean performOk() {
|
||||
boolean result = super.performOk();
|
||||
storeValues();
|
||||
MIUIPlugin.getDefault().savePluginPreferences();
|
||||
MIPlugin.getDefault().savePluginPreferences();
|
||||
return true;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -120,8 +372,10 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
}
|
||||
|
||||
private void setDefaultValues() {
|
||||
fDebugTimeoutText.setStringValue( new Integer( IMIConstants.DEF_REQUEST_TIMEOUT ).toString() );
|
||||
fLaunchTimeoutText.setStringValue( new Integer( IMIConstants.DEF_REQUEST_LAUNCH_TIMEOUT ).toString() );
|
||||
fDebugTimeoutText.loadDefault();
|
||||
fLaunchTimeoutText.loadDefault();
|
||||
fRefreshRegistersButton.loadDefault();
|
||||
fRefreshSolibsButton.loadDefault();
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -153,7 +407,7 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
|
||||
public void propertyChange( PropertyChangeEvent event ) {
|
||||
if ( event.getProperty().equals( FieldEditor.IS_VALID ) )
|
||||
setValid( fDebugTimeoutText.isValid() );
|
||||
setValid( getDebugTimeoutText().isValid() );
|
||||
}
|
||||
} );
|
||||
fLaunchTimeoutText = createTimeoutField( IMIConstants.PREF_REQUEST_LAUNCH_TIMEOUT, PreferenceMessages.getString( "MIPreferencePage.3" ), spacingComposite ); //$NON-NLS-1$
|
||||
|
@ -161,17 +415,21 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
|
||||
public void propertyChange( PropertyChangeEvent event ) {
|
||||
if ( event.getProperty().equals( FieldEditor.IS_VALID ) )
|
||||
setValid( fLaunchTimeoutText.isValid() );
|
||||
setValid( getLaunchTimeoutText().isValid() );
|
||||
}
|
||||
} );
|
||||
fRefreshRegistersButton = createRefreshField( IMIConstants.PREF_REGISTERS_AUTO_REFRESH, PreferenceMessages.getString( "MIPreferencePage.5" ), spacingComposite ); //$NON-NLS-1$
|
||||
fRefreshSolibsButton = createRefreshField( IMIConstants.PREF_SHARED_LIBRARIES_AUTO_REFRESH, PreferenceMessages.getString( "MIPreferencePage.6" ), spacingComposite ); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
* Store the preference values based on the state of the component widgets
|
||||
*/
|
||||
private void storeValues() {
|
||||
MIPlugin.getDefault().getPluginPreferences().setValue( IMIConstants.PREF_REQUEST_TIMEOUT, fDebugTimeoutText.getIntValue() );
|
||||
MIPlugin.getDefault().getPluginPreferences().setValue( IMIConstants.PREF_REQUEST_LAUNCH_TIMEOUT, fLaunchTimeoutText.getIntValue() );
|
||||
fDebugTimeoutText.store();
|
||||
fLaunchTimeoutText.store();
|
||||
fRefreshRegistersButton.store();
|
||||
fRefreshSolibsButton.store();
|
||||
}
|
||||
|
||||
private IntegerFieldEditor createTimeoutField( String preference, String label, Composite parent ) {
|
||||
|
@ -179,7 +437,7 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
GridData data = new GridData();
|
||||
data.widthHint = convertWidthInCharsToPixels( 10 );
|
||||
toText.getTextControl( parent ).setLayoutData( data );
|
||||
toText.setPreferenceStore( MIUIPlugin.getDefault().getPreferenceStore() );
|
||||
toText.setPreferenceStore( getMICorePreferenceStore() );
|
||||
toText.setPreferencePage( this );
|
||||
toText.setValidateStrategy( StringFieldEditor.VALIDATE_ON_KEY_STROKE );
|
||||
toText.setValidRange( IMIConstants.MIN_REQUEST_TIMEOUT, IMIConstants.MAX_REQUEST_TIMEOUT );
|
||||
|
@ -189,4 +447,35 @@ public class MIPreferencePage extends PreferencePage implements IWorkbenchPrefer
|
|||
toText.load();
|
||||
return toText;
|
||||
}
|
||||
|
||||
private BooleanFieldEditor createRefreshField( String preference, String label, Composite parent ) {
|
||||
BooleanFieldEditor field = new BooleanFieldEditor( preference, label, parent );
|
||||
field.setPreferencePage( this );
|
||||
field.setPreferenceStore( new MIPreferenceStore( MIPlugin.getDefault().getPluginPreferences() ) );
|
||||
field.load();
|
||||
return field;
|
||||
}
|
||||
|
||||
protected MIPreferenceStore getMICorePreferenceStore() {
|
||||
return fMICorePreferenceStore;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.dialogs.IDialogPage#dispose()
|
||||
*/
|
||||
public void dispose() {
|
||||
fDebugTimeoutText.dispose();
|
||||
fLaunchTimeoutText.dispose();
|
||||
fRefreshRegistersButton.dispose();
|
||||
fRefreshSolibsButton.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
protected IntegerFieldEditor getLaunchTimeoutText() {
|
||||
return fLaunchTimeoutText;
|
||||
}
|
||||
|
||||
protected IntegerFieldEditor getDebugTimeoutText() {
|
||||
return fDebugTimeoutText;
|
||||
}
|
||||
}
|
|
@ -14,3 +14,5 @@ MIPreferencePage.1=Communication
|
|||
MIPreferencePage.2=&Debugger timeout (ms):
|
||||
MIPreferencePage.3=&Launch timeout (ms):
|
||||
MIPreferencePage.4=The valid value range is [{0},{1}].
|
||||
MIPreferencePage.5=Automatically refresh registers
|
||||
MIPreferencePage.6=Automatically refresh shared libraries
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
/**********************************************************************
|
||||
* Copyright (c) 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.debug.mi.internal.ui.propertypages;
|
||||
|
||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||
import org.eclipse.cdt.debug.core.cdi.ICDISession;
|
||||
import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
|
||||
import org.eclipse.cdt.debug.mi.core.cdi.Session;
|
||||
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.ui.dialogs.PropertyPage;
|
||||
|
||||
/**
|
||||
* The property page for the gdb/mi-based debugger options.
|
||||
*/
|
||||
public class OptionsPropertyPage extends PropertyPage {
|
||||
|
||||
private Button fRefreshRegistersButton;
|
||||
|
||||
private Button fRefreshSolibsButton;
|
||||
|
||||
/**
|
||||
* Constructor for OptionsPropertyPage.
|
||||
*/
|
||||
public OptionsPropertyPage() {
|
||||
noDefaultAndApplyButton();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
protected Control createContents( Composite parent ) {
|
||||
Composite comp = ControlFactory.createComposite( parent, 1 );
|
||||
fRefreshRegistersButton = createCheckButton( comp, PropertyMessages.getString( "OptionsPropertyPage.0" ) ); //$NON-NLS-1$
|
||||
fRefreshSolibsButton = createCheckButton( comp, PropertyMessages.getString( "OptionsPropertyPage.1" ) ); //$NON-NLS-1$
|
||||
initialize();
|
||||
return comp;
|
||||
}
|
||||
|
||||
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 void initialize() {
|
||||
boolean regUpdate = true;
|
||||
boolean solibUpdate = true;
|
||||
ICDISession session = (ICDISession)getElement().getAdapter( ICDISession.class );
|
||||
if ( session instanceof Session ) {
|
||||
regUpdate = ((Session)session).getRegisterManager().isAutoUpdate();
|
||||
solibUpdate = ((Session)session).getSharedLibraryManager().isAutoUpdate();
|
||||
}
|
||||
fRefreshRegistersButton.setSelection( regUpdate );
|
||||
fRefreshSolibsButton.setSelection( solibUpdate );
|
||||
|
||||
}
|
||||
|
||||
protected void performApply() {
|
||||
storeValues();
|
||||
super.performApply();
|
||||
}
|
||||
|
||||
public boolean performOk() {
|
||||
storeValues();
|
||||
return super.performOk();
|
||||
}
|
||||
|
||||
private void storeValues() {
|
||||
ICDISession session = (ICDISession)getElement().getAdapter( ICDISession.class );
|
||||
final ICDITarget target = (ICDITarget)getElement().getAdapter( ICDITarget.class );
|
||||
if ( session instanceof Session ) {
|
||||
final boolean regUpdate = fRefreshRegistersButton.getSelection();
|
||||
final boolean solibUpdate = fRefreshSolibsButton.getSelection();
|
||||
final Session miSession = ((Session)session);
|
||||
miSession.getRegisterManager().setAutoUpdate( regUpdate );
|
||||
miSession.getSharedLibraryManager().setAutoUpdate( solibUpdate );
|
||||
if ( target.isSuspended() && (regUpdate || solibUpdate) ) {
|
||||
DebugPlugin.getDefault().asyncExec( new Runnable() {
|
||||
|
||||
public void run() {
|
||||
if ( target.isSuspended() ) {
|
||||
if ( regUpdate ) {
|
||||
try {
|
||||
miSession.getRegisterManager().update();
|
||||
}
|
||||
catch( CDIException e ) {
|
||||
}
|
||||
}
|
||||
if ( solibUpdate ) {
|
||||
try {
|
||||
miSession.getSharedLibraryManager().update();
|
||||
}
|
||||
catch( CDIException e ) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
/**********************************************************************
|
||||
* Copyright (c) 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.debug.mi.internal.ui.propertypages;
|
||||
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
* Comment for .
|
||||
*/
|
||||
public class PropertyMessages {
|
||||
|
||||
private static final String BUNDLE_NAME = "org.eclipse.cdt.debug.mi.internal.ui.propertypages.PropertyMessages";//$NON-NLS-1$
|
||||
|
||||
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
|
||||
|
||||
private PropertyMessages() {
|
||||
}
|
||||
|
||||
public static String getString( String key ) {
|
||||
// TODO Auto-generated method stub
|
||||
try {
|
||||
return RESOURCE_BUNDLE.getString( key );
|
||||
}
|
||||
catch( MissingResourceException e ) {
|
||||
return '!' + key + '!';
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
OptionsPropertyPage.0=Automatically refresh registers
|
||||
OptionsPropertyPage.1=Automatically refresh shared libraries
|
Loading…
Add table
Reference in a new issue