mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-08 19:13:27 +02:00
Replaced the "Breakpoint Properties" dialog by standard property pages.
This commit is contained in:
parent
9dbce05b79
commit
2c8471ce9c
10 changed files with 375 additions and 751 deletions
|
@ -1,3 +1,15 @@
|
||||||
|
2004-08-24 Mikhail Khodjaiants
|
||||||
|
Replaced the "Breakpoint Properties" dialog by standard property pages.
|
||||||
|
* CBreakpointPreferenceStore.java
|
||||||
|
* CBreakpointPropertiesAction.java
|
||||||
|
* CBreakpointPropertiesRulerAction.java
|
||||||
|
* CBreakpointPropertiesRulerActionDelegate.java
|
||||||
|
* CBreakpointPreferencePage.java renamed to CBreakpointPropertyPage.java
|
||||||
|
* CBreakpointPropertiesDialog.java: removed
|
||||||
|
* plugin.xml
|
||||||
|
* plugin.properties
|
||||||
|
* ActionMessages.properties
|
||||||
|
|
||||||
2004-08-12 Mikhail Khodjaiants
|
2004-08-12 Mikhail Khodjaiants
|
||||||
Fix for bug 70453. Linux: error exiting Eclipse on Linux RedHat or SuSe Enterprise Server 9.
|
Fix for bug 70453. Linux: error exiting Eclipse on Linux RedHat or SuSe Enterprise Server 9.
|
||||||
Applied modified patch from Sean Evoy.
|
Applied modified patch from Sean Evoy.
|
||||||
|
|
|
@ -119,3 +119,5 @@ DebugTextHover.description=Shows the value of the expression selected in the deb
|
||||||
|
|
||||||
DebuggingCContext.name=Debugging C/C++
|
DebuggingCContext.name=Debugging C/C++
|
||||||
DebuggingCContext.description=Debugging C/C++ Programs
|
DebuggingCContext.description=Debugging C/C++ Programs
|
||||||
|
|
||||||
|
CommonBreakpointPage.label=Common
|
|
@ -1071,6 +1071,12 @@
|
||||||
class="org.eclipse.cdt.debug.ui.sourcelookup.SourcePropertyPage"
|
class="org.eclipse.cdt.debug.ui.sourcelookup.SourcePropertyPage"
|
||||||
id="org.eclipse.cdt.debug.ui.sourcelookup.SourcePropertyPage">
|
id="org.eclipse.cdt.debug.ui.sourcelookup.SourcePropertyPage">
|
||||||
</page>
|
</page>
|
||||||
|
<page
|
||||||
|
adaptable="true"
|
||||||
|
objectClass="org.eclipse.cdt.debug.core.model.ICBreakpoint"
|
||||||
|
class="org.eclipse.cdt.debug.internal.ui.actions.CBreakpointPropertyPage"
|
||||||
|
name="%CommonBreakpointPage.label"
|
||||||
|
id="org.eclipse.cdt.debug.ui.propertypages.breakpoint.common"/>
|
||||||
</extension>
|
</extension>
|
||||||
<extension
|
<extension
|
||||||
id="org.eclipse.cdt.debug.ui.editors"
|
id="org.eclipse.cdt.debug.ui.editors"
|
||||||
|
|
|
@ -102,28 +102,30 @@ MemorySizeAction.0={0, number, integer} {0, choice, 1\#byte|2\#bytes}
|
||||||
MemorySizeAction.1=Unable to change memory unit size.
|
MemorySizeAction.1=Unable to change memory unit size.
|
||||||
MemoryFormatAction.0=Unable to change the format.
|
MemoryFormatAction.0=Unable to change the format.
|
||||||
MemoryFormatAction.1=Hexadecimal
|
MemoryFormatAction.1=Hexadecimal
|
||||||
MemoryFormatAction.2=Signed_Decimal
|
MemoryFormatAction.2=Signed Decimal
|
||||||
MemoryFormatAction.3=Unsigned_Decimal
|
MemoryFormatAction.3=Unsigned Decimal
|
||||||
MemoryNumberOfColumnAction.0={0, number, integer} {0, choice, 0\#columns|1\#column|2\#columns}
|
MemoryNumberOfColumnAction.0={0, number, integer} {0, choice, 0\#columns|1\#column|2\#columns}
|
||||||
MemoryNumberOfColumnAction.1=Unable to change the column number.
|
MemoryNumberOfColumnAction.1=Unable to change the column number.
|
||||||
CBreakpointPreferencePage.0=Ignore count must be a positive integer
|
CBreakpointPropertyPage.0=Ignore count must be a nonnegative integer
|
||||||
CBreakpointPreferencePage.1=Not available
|
CBreakpointPropertyPage.1=Not available
|
||||||
CBreakpointPreferencePage.2=Function name:
|
CBreakpointPropertyPage.2=Function name:
|
||||||
CBreakpointPreferencePage.3=C/C++ Function Breakpoint Properties
|
CBreakpointPropertyPage.3=C/C++ function breakpoint
|
||||||
CBreakpointPreferencePage.4=Not available
|
CBreakpointPropertyPage.4=Not available
|
||||||
CBreakpointPreferencePage.5=Address:
|
CBreakpointPropertyPage.5=Address:
|
||||||
CBreakpointPreferencePage.6=C/C++ Address Breakpoint Properties
|
CBreakpointPropertyPage.6=C/C++ address breakpoint
|
||||||
CBreakpointPreferencePage.7=File:
|
CBreakpointPropertyPage.7=File:
|
||||||
CBreakpointPreferencePage.8=C/C++ Line Breakpoint Properties
|
CBreakpointPropertyPage.8=C/C++ line breakpoint
|
||||||
CBreakpointPreferencePage.9=Line_Number:
|
CBreakpointPropertyPage.9=Line number:
|
||||||
CBreakpointPreferencePage.10=Project:
|
CBreakpointPropertyPage.10=Project:
|
||||||
CBreakpointPreferencePage.11=C/C++ Read Watchpoint Properties
|
CBreakpointPropertyPage.11=C/C++ read watchpoint
|
||||||
CBreakpointPreferencePage.12=C/C++ Watchpoint Properties
|
CBreakpointPropertyPage.12=C/C++ watchpoint
|
||||||
CBreakpointPreferencePage.13=C/C++ Access Watchpoint Properties
|
CBreakpointPropertyPage.13=C/C++ access watchpoint
|
||||||
CBreakpointPreferencePage.14=Expression To Watch:
|
CBreakpointPropertyPage.14=Expression to watch:
|
||||||
CBreakpointPreferencePage.15=&Condition
|
CBreakpointPropertyPage.15=&Condition:
|
||||||
CBreakpointPreferencePage.16=Invalid_condition.
|
CBreakpointPropertyPage.16=Invalid condition.
|
||||||
CBreakpointPreferencePage.17=&Ignore Count:
|
CBreakpointPropertyPage.17=&Ignore count:
|
||||||
|
CBreakpointPropertyPage.18=Type:
|
||||||
|
CBreakpointPropertyPage.19=Enabled
|
||||||
AddWatchpointActionDelegate.0=Cannot add watchpoint.
|
AddWatchpointActionDelegate.0=Cannot add watchpoint.
|
||||||
AddWatchpointDialog.0=Add Watchpoint
|
AddWatchpointDialog.0=Add Watchpoint
|
||||||
AddWatchpointDialog.1=Expression to watch:
|
AddWatchpointDialog.1=Expression to watch:
|
||||||
|
|
|
@ -11,333 +11,353 @@
|
||||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
package org.eclipse.cdt.debug.internal.ui.actions;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
import org.eclipse.jface.preference.IPreferenceStore;
|
||||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
import org.eclipse.jface.util.IPropertyChangeListener;
|
||||||
import org.eclipse.jface.util.ListenerList;
|
import org.eclipse.jface.util.ListenerList;
|
||||||
import org.eclipse.jface.util.PropertyChangeEvent;
|
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* A preference store that presents the state of the properties of a C/C++ breakpoint. Default settings are not supported.
|
||||||
* A preference store that presents the state of the properties
|
|
||||||
* of a C/C++ breakpoint. Default settings are not supported.
|
|
||||||
*
|
|
||||||
* @since Aug 27, 2002
|
|
||||||
*/
|
*/
|
||||||
public class CBreakpointPreferenceStore implements IPreferenceStore
|
public class CBreakpointPreferenceStore implements IPreferenceStore {
|
||||||
{
|
|
||||||
protected final static String ENABLED = "ENABLED"; //$NON-NLS-1$
|
protected final static String ENABLED = "ENABLED"; //$NON-NLS-1$
|
||||||
|
|
||||||
protected final static String CONDITION = "CONDITION"; //$NON-NLS-1$
|
protected final static String CONDITION = "CONDITION"; //$NON-NLS-1$
|
||||||
|
|
||||||
protected final static String IGNORE_COUNT = "IGNORE_COUNT"; //$NON-NLS-1$
|
protected final static String IGNORE_COUNT = "IGNORE_COUNT"; //$NON-NLS-1$
|
||||||
|
|
||||||
protected HashMap fProperties;
|
protected HashMap fProperties;
|
||||||
|
|
||||||
private boolean fIsDirty = false;
|
private boolean fIsDirty = false;
|
||||||
|
|
||||||
private ListenerList fListeners;
|
private ListenerList fListeners;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for CBreakpointPreferenceStore.
|
* Constructor for CBreakpointPreferenceStore.
|
||||||
*/
|
*/
|
||||||
public CBreakpointPreferenceStore()
|
public CBreakpointPreferenceStore() {
|
||||||
{
|
|
||||||
fProperties = new HashMap( 3 );
|
fProperties = new HashMap( 3 );
|
||||||
fListeners = new ListenerList();
|
fListeners = new ListenerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(IPropertyChangeListener)
|
* @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(IPropertyChangeListener)
|
||||||
*/
|
*/
|
||||||
public void addPropertyChangeListener( IPropertyChangeListener listener )
|
public void addPropertyChangeListener( IPropertyChangeListener listener ) {
|
||||||
{
|
|
||||||
fListeners.add( listener );
|
fListeners.add( listener );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#contains(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#contains(String)
|
||||||
*/
|
*/
|
||||||
public boolean contains( String name )
|
public boolean contains( String name ) {
|
||||||
{
|
|
||||||
return fProperties.containsKey( name );
|
return fProperties.containsKey( name );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(String, Object, Object)
|
* @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(String, Object, Object)
|
||||||
*/
|
*/
|
||||||
public void firePropertyChangeEvent( String name, Object oldValue, Object newValue )
|
public void firePropertyChangeEvent( String name, Object oldValue, Object newValue ) {
|
||||||
{
|
|
||||||
Object[] listeners = fListeners.getListeners();
|
Object[] listeners = fListeners.getListeners();
|
||||||
if ( listeners.length > 0 && (oldValue == null || !oldValue.equals( newValue ) ) )
|
if ( listeners.length > 0 && (oldValue == null || !oldValue.equals( newValue )) ) {
|
||||||
{
|
|
||||||
PropertyChangeEvent pe = new PropertyChangeEvent( this, name, oldValue, newValue );
|
PropertyChangeEvent pe = new PropertyChangeEvent( this, name, oldValue, newValue );
|
||||||
for ( int i = 0; i < listeners.length; ++i )
|
for( int i = 0; i < listeners.length; ++i ) {
|
||||||
{
|
|
||||||
IPropertyChangeListener l = (IPropertyChangeListener)listeners[i];
|
IPropertyChangeListener l = (IPropertyChangeListener)listeners[i];
|
||||||
l.propertyChange( pe );
|
l.propertyChange( pe );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(String)
|
||||||
*/
|
*/
|
||||||
public boolean getBoolean( String name )
|
public boolean getBoolean( String name ) {
|
||||||
{
|
|
||||||
Object b = fProperties.get( name );
|
Object b = fProperties.get( name );
|
||||||
if ( b instanceof Boolean )
|
if ( b instanceof Boolean ) {
|
||||||
{
|
|
||||||
return ((Boolean)b).booleanValue();
|
return ((Boolean)b).booleanValue();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(String)
|
||||||
*/
|
*/
|
||||||
public boolean getDefaultBoolean( String name )
|
public boolean getDefaultBoolean( String name ) {
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(String)
|
||||||
*/
|
*/
|
||||||
public double getDefaultDouble( String name )
|
public double getDefaultDouble( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(String)
|
||||||
*/
|
*/
|
||||||
public float getDefaultFloat( String name )
|
public float getDefaultFloat( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(String)
|
||||||
*/
|
*/
|
||||||
public int getDefaultInt( String name )
|
public int getDefaultInt( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(String)
|
||||||
*/
|
*/
|
||||||
public long getDefaultLong( String name )
|
public long getDefaultLong( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(String)
|
||||||
*/
|
*/
|
||||||
public String getDefaultString( String name )
|
public String getDefaultString( String name ) {
|
||||||
{
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getDouble(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getDouble(String)
|
||||||
*/
|
*/
|
||||||
public double getDouble( String name )
|
public double getDouble( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getFloat(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getFloat(String)
|
||||||
*/
|
*/
|
||||||
public float getFloat( String name )
|
public float getFloat( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getInt(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getInt(String)
|
||||||
*/
|
*/
|
||||||
public int getInt( String name )
|
public int getInt( String name ) {
|
||||||
{
|
|
||||||
Object i = fProperties.get( name );
|
Object i = fProperties.get( name );
|
||||||
if ( i instanceof Integer )
|
if ( i instanceof Integer ) {
|
||||||
{
|
|
||||||
return ((Integer)i).intValue();
|
return ((Integer)i).intValue();
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getLong(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getLong(String)
|
||||||
*/
|
*/
|
||||||
public long getLong( String name )
|
public long getLong( String name ) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#getString(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#getString(String)
|
||||||
*/
|
*/
|
||||||
public String getString( String name )
|
public String getString( String name ) {
|
||||||
{
|
|
||||||
Object str = fProperties.get( name );
|
Object str = fProperties.get( name );
|
||||||
if ( str instanceof String )
|
if ( str instanceof String ) {
|
||||||
{
|
|
||||||
return (String)str;
|
return (String)str;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#isDefault(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#isDefault(String)
|
||||||
*/
|
*/
|
||||||
public boolean isDefault( String name )
|
public boolean isDefault( String name ) {
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
|
* @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
|
||||||
*/
|
*/
|
||||||
public boolean needsSaving()
|
public boolean needsSaving() {
|
||||||
{
|
|
||||||
return fIsDirty;
|
return fIsDirty;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#putValue(String, String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#putValue(String, String)
|
||||||
*/
|
*/
|
||||||
public void putValue( String name, String newValue )
|
public void putValue( String name, String newValue ) {
|
||||||
{
|
|
||||||
Object oldValue = fProperties.get( name );
|
Object oldValue = fProperties.get( name );
|
||||||
if ( oldValue == null || !oldValue.equals( newValue ) )
|
if ( oldValue == null || !oldValue.equals( newValue ) ) {
|
||||||
{
|
|
||||||
fProperties.put( name, newValue );
|
fProperties.put( name, newValue );
|
||||||
setDirty( true );
|
setDirty( true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener)
|
* @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener)
|
||||||
*/
|
*/
|
||||||
public void removePropertyChangeListener( IPropertyChangeListener listener )
|
public void removePropertyChangeListener( IPropertyChangeListener listener ) {
|
||||||
{
|
|
||||||
fListeners.remove( listener );
|
fListeners.remove( listener );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, double)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, double)
|
||||||
*/
|
*/
|
||||||
public void setDefault( String name, double value )
|
public void setDefault( String name, double value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, float)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, float)
|
||||||
*/
|
*/
|
||||||
public void setDefault( String name, float value )
|
public void setDefault( String name, float value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, int)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, int)
|
||||||
*/
|
*/
|
||||||
public void setDefault( String name, int value )
|
public void setDefault( String name, int value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, long)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, long)
|
||||||
*/
|
*/
|
||||||
public void setDefault( String name, long value )
|
public void setDefault( String name, long value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, String)
|
||||||
*/
|
*/
|
||||||
public void setDefault( String name, String defaultObject )
|
public void setDefault( String name, String defaultObject ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, boolean)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, boolean)
|
||||||
*/
|
*/
|
||||||
public void setDefault( String name, boolean value )
|
public void setDefault( String name, boolean value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(String)
|
||||||
*/
|
*/
|
||||||
public void setToDefault( String name )
|
public void setToDefault( String name ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, double)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, double)
|
||||||
*/
|
*/
|
||||||
public void setValue( String name, double value )
|
public void setValue( String name, double value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, float)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, float)
|
||||||
*/
|
*/
|
||||||
public void setValue( String name, float value )
|
public void setValue( String name, float value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, int)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, int)
|
||||||
*/
|
*/
|
||||||
public void setValue( String name, int newValue )
|
public void setValue( String name, int newValue ) {
|
||||||
{
|
|
||||||
int oldValue = getInt( name );
|
int oldValue = getInt( name );
|
||||||
if ( oldValue != newValue )
|
if ( oldValue != newValue ) {
|
||||||
{
|
|
||||||
fProperties.put( name, new Integer( newValue ) );
|
fProperties.put( name, new Integer( newValue ) );
|
||||||
setDirty( true );
|
setDirty( true );
|
||||||
firePropertyChangeEvent( name, new Integer( oldValue ), new Integer( newValue ) );
|
firePropertyChangeEvent( name, new Integer( oldValue ), new Integer( newValue ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, long)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, long)
|
||||||
*/
|
*/
|
||||||
public void setValue( String name, long value )
|
public void setValue( String name, long value ) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, String)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, String)
|
||||||
*/
|
*/
|
||||||
public void setValue( String name, String newValue )
|
public void setValue( String name, String newValue ) {
|
||||||
{
|
|
||||||
Object oldValue = fProperties.get( name );
|
Object oldValue = fProperties.get( name );
|
||||||
if ( oldValue == null || !oldValue.equals( newValue ) )
|
if ( oldValue == null || !oldValue.equals( newValue ) ) {
|
||||||
{
|
|
||||||
fProperties.put( name, newValue );
|
fProperties.put( name, newValue );
|
||||||
setDirty( true );
|
setDirty( true );
|
||||||
firePropertyChangeEvent( name, oldValue, newValue );
|
firePropertyChangeEvent( name, oldValue, newValue );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, boolean)
|
* @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, boolean)
|
||||||
*/
|
*/
|
||||||
public void setValue( String name, boolean newValue )
|
public void setValue( String name, boolean newValue ) {
|
||||||
{
|
|
||||||
boolean oldValue = getBoolean( name );
|
boolean oldValue = getBoolean( name );
|
||||||
if ( oldValue != newValue )
|
if ( oldValue != newValue ) {
|
||||||
{
|
|
||||||
fProperties.put( name, new Boolean( newValue ) );
|
fProperties.put( name, new Boolean( newValue ) );
|
||||||
setDirty(true);
|
setDirty( true );
|
||||||
firePropertyChangeEvent( name, new Boolean( oldValue ), new Boolean( newValue ) );
|
firePropertyChangeEvent( name, new Boolean( oldValue ), new Boolean( newValue ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setDirty( boolean isDirty )
|
protected void setDirty( boolean isDirty ) {
|
||||||
{
|
|
||||||
fIsDirty = isDirty;
|
fIsDirty = isDirty;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -11,86 +11,87 @@
|
||||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
package org.eclipse.cdt.debug.internal.ui.actions;
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
||||||
|
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
import org.eclipse.jface.dialogs.Dialog;
|
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
|
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
|
import org.eclipse.jface.viewers.ISelectionProvider;
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||||
|
import org.eclipse.jface.viewers.StructuredSelection;
|
||||||
import org.eclipse.ui.IObjectActionDelegate;
|
import org.eclipse.ui.IObjectActionDelegate;
|
||||||
import org.eclipse.ui.IWorkbenchPart;
|
import org.eclipse.ui.IWorkbenchPart;
|
||||||
|
import org.eclipse.ui.dialogs.PropertyDialogAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Presents a custom properties dialog to configure the attibutes of a C/C++ breakpoint.
|
* Presents a custom properties dialog to configure the attibutes of a C/C++ breakpoint.
|
||||||
*
|
|
||||||
* @since Sep 3, 2002
|
|
||||||
*/
|
*/
|
||||||
public class CBreakpointPropertiesAction implements IObjectActionDelegate
|
public class CBreakpointPropertiesAction implements IObjectActionDelegate {
|
||||||
{
|
|
||||||
private IWorkbenchPart fPart;
|
private IWorkbenchPart fPart;
|
||||||
|
|
||||||
private ICBreakpoint fBreakpoint;
|
private ICBreakpoint fBreakpoint;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for CBreakpointPropertiesAction.
|
* Constructor for CBreakpointPropertiesAction.
|
||||||
*/
|
*/
|
||||||
public CBreakpointPropertiesAction()
|
public CBreakpointPropertiesAction() {
|
||||||
{
|
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.ui.IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
|
* @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
|
||||||
*/
|
*/
|
||||||
public void setActivePart( IAction action, IWorkbenchPart targetPart )
|
public void setActivePart( IAction action, IWorkbenchPart targetPart ) {
|
||||||
{
|
|
||||||
fPart = targetPart;
|
fPart = targetPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.ui.IActionDelegate#run(IAction)
|
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
|
||||||
*/
|
*/
|
||||||
public void run( IAction action )
|
public void run( IAction action ) {
|
||||||
{
|
PropertyDialogAction propertyAction = new PropertyDialogAction( CDebugUIPlugin.getActiveWorkbenchShell(), new ISelectionProvider() {
|
||||||
Dialog d = new CBreakpointPropertiesDialog( getActivePart().getSite().getShell(), getBreakpoint() );
|
|
||||||
d.open();
|
public void addSelectionChangedListener( ISelectionChangedListener listener ) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ISelection getSelection() {
|
||||||
|
return new StructuredSelection( getBreakpoint() );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeSelectionChangedListener( ISelectionChangedListener listener ) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelection( ISelection selection ) {
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
propertyAction.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection)
|
* @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
|
||||||
*/
|
*/
|
||||||
public void selectionChanged( IAction action, ISelection selection )
|
public void selectionChanged( IAction action, ISelection selection ) {
|
||||||
{
|
if ( selection instanceof IStructuredSelection ) {
|
||||||
if ( selection instanceof IStructuredSelection )
|
|
||||||
{
|
|
||||||
IStructuredSelection ss = (IStructuredSelection)selection;
|
IStructuredSelection ss = (IStructuredSelection)selection;
|
||||||
if ( ss.isEmpty() || ss.size() > 1 )
|
if ( ss.isEmpty() || ss.size() > 1 ) {
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Object element = ss.getFirstElement();
|
Object element = ss.getFirstElement();
|
||||||
if ( element instanceof ICBreakpoint )
|
if ( element instanceof ICBreakpoint ) {
|
||||||
{
|
|
||||||
setBreakpoint( (ICBreakpoint)element );
|
setBreakpoint( (ICBreakpoint)element );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IWorkbenchPart getActivePart()
|
protected IWorkbenchPart getActivePart() {
|
||||||
{
|
|
||||||
return fPart;
|
return fPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setActivePart( IWorkbenchPart part )
|
protected ICBreakpoint getBreakpoint() {
|
||||||
{
|
|
||||||
fPart = part;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ICBreakpoint getBreakpoint()
|
|
||||||
{
|
|
||||||
return fBreakpoint;
|
return fBreakpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setBreakpoint( ICBreakpoint breakpoint )
|
protected void setBreakpoint( ICBreakpoint breakpoint ) {
|
||||||
{
|
|
||||||
fBreakpoint = breakpoint;
|
fBreakpoint = breakpoint;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,510 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* 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.debug.internal.ui.actions;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
|
||||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
|
||||||
import org.eclipse.core.resources.IWorkspaceRunnable;
|
|
||||||
import org.eclipse.core.resources.ResourcesPlugin;
|
|
||||||
import org.eclipse.core.runtime.CoreException;
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
|
||||||
import org.eclipse.jface.dialogs.Dialog;
|
|
||||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
|
||||||
import org.eclipse.jface.preference.IPreferencePageContainer;
|
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
|
||||||
import org.eclipse.jface.preference.PreferenceDialog;
|
|
||||||
import org.eclipse.jface.resource.ImageDescriptor;
|
|
||||||
import org.eclipse.jface.resource.ImageRegistry;
|
|
||||||
import org.eclipse.jface.resource.JFaceColors;
|
|
||||||
import org.eclipse.jface.resource.JFaceResources;
|
|
||||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
|
||||||
import org.eclipse.jface.util.PropertyChangeEvent;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.custom.CLabel;
|
|
||||||
import org.eclipse.swt.events.DisposeEvent;
|
|
||||||
import org.eclipse.swt.events.DisposeListener;
|
|
||||||
import org.eclipse.swt.graphics.Color;
|
|
||||||
import org.eclipse.swt.graphics.Image;
|
|
||||||
import org.eclipse.swt.graphics.Point;
|
|
||||||
import org.eclipse.swt.graphics.Rectangle;
|
|
||||||
import org.eclipse.swt.layout.GridData;
|
|
||||||
import org.eclipse.swt.layout.GridLayout;
|
|
||||||
import org.eclipse.swt.widgets.Button;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
import org.eclipse.swt.widgets.Control;
|
|
||||||
import org.eclipse.swt.widgets.Display;
|
|
||||||
import org.eclipse.swt.widgets.Label;
|
|
||||||
import org.eclipse.swt.widgets.Layout;
|
|
||||||
import org.eclipse.swt.widgets.Shell;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @since Aug 29, 2002
|
|
||||||
*/
|
|
||||||
public class CBreakpointPropertiesDialog extends Dialog
|
|
||||||
implements IPreferencePageContainer
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Layout for the page container.
|
|
||||||
*
|
|
||||||
* @see CBreakpointPropertiesDialog#createPageContainer(Composite, int)
|
|
||||||
*/
|
|
||||||
private class PageLayout extends Layout
|
|
||||||
{
|
|
||||||
public void layout( Composite composite, boolean force )
|
|
||||||
{
|
|
||||||
Rectangle rect = composite.getClientArea();
|
|
||||||
Control[] children = composite.getChildren();
|
|
||||||
for ( int i = 0; i < children.length; i++ )
|
|
||||||
{
|
|
||||||
children[i].setSize( rect.width, rect.height );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Point computeSize( Composite composite, int wHint, int hHint, boolean force )
|
|
||||||
{
|
|
||||||
if ( wHint != SWT.DEFAULT && hHint != SWT.DEFAULT )
|
|
||||||
return new Point( wHint, hHint );
|
|
||||||
int x = getMinimumPageSize().x;
|
|
||||||
int y = getMinimumPageSize().y;
|
|
||||||
|
|
||||||
Control[] children = composite.getChildren();
|
|
||||||
for ( int i = 0; i < children.length; i++ )
|
|
||||||
{
|
|
||||||
Point size = children[i].computeSize( SWT.DEFAULT, SWT.DEFAULT, force );
|
|
||||||
x = Math.max( x, size.x );
|
|
||||||
y = Math.max( y, size.y );
|
|
||||||
}
|
|
||||||
if ( wHint != SWT.DEFAULT )
|
|
||||||
x = wHint;
|
|
||||||
if ( hHint != SWT.DEFAULT )
|
|
||||||
y = hHint;
|
|
||||||
return new Point( x, y );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Composite fTitleArea;
|
|
||||||
private Label fTitleImage;
|
|
||||||
private CLabel fMessageLabel;
|
|
||||||
|
|
||||||
private String fMessage;
|
|
||||||
private Color fNormalMsgAreaBackground;
|
|
||||||
private Image fErrorMsgImage;
|
|
||||||
|
|
||||||
|
|
||||||
private CBreakpointPreferencePage fPage;
|
|
||||||
|
|
||||||
private Button fOkButton;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Must declare our own images as the JFaceResource images will not be created unless
|
|
||||||
* a property/preference dialog has been shown
|
|
||||||
*/
|
|
||||||
protected static final String PREF_DLG_TITLE_IMG = "breakpoint_preference_dialog_title_image"; //$NON-NLS-1$
|
|
||||||
protected static final String PREF_DLG_IMG_TITLE_ERROR = "breakpoint_preference_dialog_title_error_image"; //$NON-NLS-1$
|
|
||||||
static
|
|
||||||
{
|
|
||||||
ImageRegistry reg = CDebugUIPlugin.getDefault().getImageRegistry();
|
|
||||||
reg.put( PREF_DLG_TITLE_IMG, ImageDescriptor.createFromFile( PreferenceDialog.class, "images/pref_dialog_title.gif" ) ); //$NON-NLS-1$
|
|
||||||
reg.put( PREF_DLG_IMG_TITLE_ERROR, ImageDescriptor.createFromFile( Dialog.class, "images/message_error.gif" ) ); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Composite in which a page is shown.
|
|
||||||
*/
|
|
||||||
private Composite fPageContainer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The minimum page size; 200 by 200 by default.
|
|
||||||
*
|
|
||||||
* @see #setMinimumPageSize(Point)
|
|
||||||
*/
|
|
||||||
private Point fMinimumPageSize = new Point(200,200);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The breakpoint that this dialog is operating on
|
|
||||||
*/
|
|
||||||
private ICBreakpoint fBreakpoint;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The "fake" preference store used to interface between
|
|
||||||
* the breakpoint and the breakpoint preference page.
|
|
||||||
*/
|
|
||||||
private CBreakpointPreferenceStore fCBreakpointPreferenceStore;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for CBreakpointPropertiesDialog.
|
|
||||||
* @param parentShell
|
|
||||||
*/
|
|
||||||
public CBreakpointPropertiesDialog( Shell parentShell, ICBreakpoint breakpoint )
|
|
||||||
{
|
|
||||||
super( parentShell );
|
|
||||||
setBreakpoint( breakpoint );
|
|
||||||
fCBreakpointPreferenceStore= new CBreakpointPreferenceStore();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.preference.IPreferencePageContainer#getPreferenceStore()
|
|
||||||
*/
|
|
||||||
public IPreferenceStore getPreferenceStore()
|
|
||||||
{
|
|
||||||
return fCBreakpointPreferenceStore;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.preference.IPreferencePageContainer#updateButtons()
|
|
||||||
*/
|
|
||||||
public void updateButtons()
|
|
||||||
{
|
|
||||||
if ( fOkButton != null )
|
|
||||||
{
|
|
||||||
fOkButton.setEnabled( fPage.isValid() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.preference.IPreferencePageContainer#updateMessage()
|
|
||||||
*/
|
|
||||||
public void updateMessage()
|
|
||||||
{
|
|
||||||
String pageMessage = fPage.getMessage();
|
|
||||||
String pageErrorMessage = fPage.getErrorMessage();
|
|
||||||
|
|
||||||
// Adjust the font
|
|
||||||
if ( pageMessage == null && pageErrorMessage == null )
|
|
||||||
fMessageLabel.setFont( JFaceResources.getBannerFont() );
|
|
||||||
else
|
|
||||||
fMessageLabel.setFont( JFaceResources.getDialogFont() );
|
|
||||||
|
|
||||||
// Set the message and error message
|
|
||||||
if ( pageMessage == null )
|
|
||||||
{
|
|
||||||
setMessage( fPage.getTitle() );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
setMessage( pageMessage );
|
|
||||||
}
|
|
||||||
setErrorMessage( pageErrorMessage );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.preference.IPreferencePageContainer#updateTitle()
|
|
||||||
*/
|
|
||||||
public void updateTitle()
|
|
||||||
{
|
|
||||||
setTitle( fPage.getTitle() );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the given error message. The currently displayed message
|
|
||||||
* is saved and will be redisplayed when the error message is set
|
|
||||||
* to <code>null</code>.
|
|
||||||
*
|
|
||||||
* @param errorMessage the errorMessage to display or <code>null</code>
|
|
||||||
*/
|
|
||||||
public void setErrorMessage( String errorMessage )
|
|
||||||
{
|
|
||||||
if ( errorMessage == null )
|
|
||||||
{
|
|
||||||
if ( fMessageLabel.getImage() != null )
|
|
||||||
{
|
|
||||||
// we were previously showing an error
|
|
||||||
fMessageLabel.setBackground( fNormalMsgAreaBackground );
|
|
||||||
fMessageLabel.setImage( null );
|
|
||||||
fTitleImage.setImage( CDebugUIPlugin.getDefault().getImageRegistry().get( PREF_DLG_TITLE_IMG ) );
|
|
||||||
fTitleArea.layout( true );
|
|
||||||
}
|
|
||||||
// show the message
|
|
||||||
setMessage( fMessage );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fMessageLabel.setText( errorMessage );
|
|
||||||
if ( fMessageLabel.getImage() == null )
|
|
||||||
{
|
|
||||||
// we were not previously showing an error
|
|
||||||
|
|
||||||
// lazy initialize the error background color and image
|
|
||||||
if ( fErrorMsgImage == null )
|
|
||||||
{
|
|
||||||
fErrorMsgImage = CDebugUIPlugin.getDefault().getImageRegistry().get( PREF_DLG_IMG_TITLE_ERROR );
|
|
||||||
}
|
|
||||||
|
|
||||||
// show the error
|
|
||||||
fNormalMsgAreaBackground = fMessageLabel.getBackground();
|
|
||||||
fMessageLabel.setBackground( JFaceColors.getErrorBackground( fMessageLabel.getDisplay() ) );
|
|
||||||
fMessageLabel.setImage( fErrorMsgImage );
|
|
||||||
fTitleImage.setImage( null );
|
|
||||||
fTitleArea.layout( true );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the message text. If the message line currently displays an error,
|
|
||||||
* the message is stored and will be shown after a call to clearErrorMessage
|
|
||||||
*/
|
|
||||||
public void setMessage( String newMessage )
|
|
||||||
{
|
|
||||||
fMessage = newMessage;
|
|
||||||
if ( fMessage == null )
|
|
||||||
{
|
|
||||||
fMessage = ""; //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
if ( fMessageLabel.getImage() == null )
|
|
||||||
{
|
|
||||||
// we are not showing an error
|
|
||||||
fMessageLabel.setText( fMessage );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the title for this dialog.
|
|
||||||
*
|
|
||||||
* @param title the title.
|
|
||||||
*/
|
|
||||||
public void setTitle( String title )
|
|
||||||
{
|
|
||||||
Shell shell = getShell();
|
|
||||||
if ( ( shell != null ) && !shell.isDisposed() )
|
|
||||||
{
|
|
||||||
shell.setText( title );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see Dialog#okPressed()
|
|
||||||
*/
|
|
||||||
protected void okPressed()
|
|
||||||
{
|
|
||||||
final List changedProperties = new ArrayList( 5 );
|
|
||||||
getPreferenceStore().addPropertyChangeListener(
|
|
||||||
new IPropertyChangeListener()
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
|
|
||||||
*/
|
|
||||||
public void propertyChange( PropertyChangeEvent event )
|
|
||||||
{
|
|
||||||
changedProperties.add( event.getProperty() );
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
fPage.performOk();
|
|
||||||
setBreakpointProperties( changedProperties );
|
|
||||||
super.okPressed();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* All of the properties that the user has changed via the dialog
|
|
||||||
* are written through to the breakpoint.
|
|
||||||
*/
|
|
||||||
protected void setBreakpointProperties( final List changedProperties )
|
|
||||||
{
|
|
||||||
IWorkspaceRunnable wr = new IWorkspaceRunnable()
|
|
||||||
{
|
|
||||||
public void run( IProgressMonitor monitor ) throws CoreException
|
|
||||||
{
|
|
||||||
ICBreakpoint breakpoint = getBreakpoint();
|
|
||||||
Iterator changed = changedProperties.iterator();
|
|
||||||
while ( changed.hasNext() )
|
|
||||||
{
|
|
||||||
String property = (String)changed.next();
|
|
||||||
if ( property.equals( CBreakpointPreferenceStore.IGNORE_COUNT ) )
|
|
||||||
{
|
|
||||||
breakpoint.setIgnoreCount( getPreferenceStore().getInt( CBreakpointPreferenceStore.IGNORE_COUNT ) );
|
|
||||||
}
|
|
||||||
else if ( property.equals( CBreakpointPreferenceStore.CONDITION ) )
|
|
||||||
{
|
|
||||||
breakpoint.setCondition( getPreferenceStore().getString( CBreakpointPreferenceStore.CONDITION ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ResourcesPlugin.getWorkspace().run( wr, null );
|
|
||||||
}
|
|
||||||
catch( CoreException ce )
|
|
||||||
{
|
|
||||||
CDebugUIPlugin.log( ce );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ICBreakpoint getBreakpoint()
|
|
||||||
{
|
|
||||||
return fBreakpoint;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setBreakpoint( ICBreakpoint breakpoint )
|
|
||||||
{
|
|
||||||
fBreakpoint = breakpoint;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see Dialog#createDialogArea(Composite)
|
|
||||||
*/
|
|
||||||
protected Control createDialogArea( Composite parent )
|
|
||||||
{
|
|
||||||
GridData gd;
|
|
||||||
Composite composite = (Composite) super.createDialogArea( parent );
|
|
||||||
((GridLayout)composite.getLayout()).numColumns = 1;
|
|
||||||
|
|
||||||
// Build the title area and separator line
|
|
||||||
Composite titleComposite = new Composite( composite, SWT.NONE );
|
|
||||||
GridLayout layout = new GridLayout();
|
|
||||||
layout.marginHeight = 0;
|
|
||||||
layout.marginWidth = 0;
|
|
||||||
layout.verticalSpacing = 0;
|
|
||||||
layout.horizontalSpacing = 0;
|
|
||||||
titleComposite.setLayout( layout );
|
|
||||||
titleComposite.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
|
|
||||||
|
|
||||||
createTitleArea( titleComposite );
|
|
||||||
|
|
||||||
Label titleBarSeparator = new Label( titleComposite, SWT.HORIZONTAL | SWT.SEPARATOR );
|
|
||||||
gd = new GridData( GridData.FILL_HORIZONTAL );
|
|
||||||
titleBarSeparator.setLayoutData( gd );
|
|
||||||
|
|
||||||
// Build the Page container
|
|
||||||
fPageContainer = createPageContainer( composite, 2 );
|
|
||||||
fPageContainer.setLayoutData( new GridData( GridData.FILL_BOTH ) );
|
|
||||||
fPageContainer.setFont( parent.getFont() );
|
|
||||||
|
|
||||||
fPage = new CBreakpointPreferencePage( getBreakpoint() );
|
|
||||||
fPage.setContainer( this );
|
|
||||||
fPage.createControl( fPageContainer );
|
|
||||||
|
|
||||||
// Build the separator line
|
|
||||||
Label separator = new Label( composite, SWT.HORIZONTAL | SWT.SEPARATOR );
|
|
||||||
gd = new GridData( GridData.FILL_HORIZONTAL );
|
|
||||||
gd.horizontalSpan = 2;
|
|
||||||
separator.setLayoutData( gd );
|
|
||||||
|
|
||||||
return composite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates the dialog's title area.
|
|
||||||
*
|
|
||||||
* @param parent the SWT parent for the title area composite
|
|
||||||
* @return the created title area composite
|
|
||||||
*/
|
|
||||||
private Composite createTitleArea( Composite parent )
|
|
||||||
{
|
|
||||||
// Create the title area which will contain
|
|
||||||
// a title, message, and image.
|
|
||||||
fTitleArea = new Composite( parent, SWT.NONE );
|
|
||||||
GridLayout layout = new GridLayout();
|
|
||||||
layout.marginHeight = 0;
|
|
||||||
layout.marginWidth = 0;
|
|
||||||
layout.verticalSpacing = 0;
|
|
||||||
layout.horizontalSpacing = 0;
|
|
||||||
layout.numColumns = 2;
|
|
||||||
|
|
||||||
// Get the colors for the title area
|
|
||||||
Display display = parent.getDisplay();
|
|
||||||
Color bg = JFaceColors.getBannerBackground( display );
|
|
||||||
Color fg = JFaceColors.getBannerForeground( display );
|
|
||||||
|
|
||||||
GridData layoutData = new GridData( GridData.FILL_BOTH );
|
|
||||||
fTitleArea.setLayout( layout );
|
|
||||||
fTitleArea.setLayoutData( layoutData );
|
|
||||||
fTitleArea.setBackground( bg );
|
|
||||||
|
|
||||||
// Message label
|
|
||||||
fMessageLabel = new CLabel( fTitleArea, SWT.LEFT );
|
|
||||||
fMessageLabel.setBackground( bg );
|
|
||||||
fMessageLabel.setForeground( fg );
|
|
||||||
fMessageLabel.setText( " " ); //$NON-NLS-1$
|
|
||||||
fMessageLabel.setFont( JFaceResources.getBannerFont() );
|
|
||||||
|
|
||||||
final IPropertyChangeListener fontListener =
|
|
||||||
new IPropertyChangeListener()
|
|
||||||
{
|
|
||||||
public void propertyChange( PropertyChangeEvent event )
|
|
||||||
{
|
|
||||||
if ( JFaceResources.BANNER_FONT.equals( event.getProperty() ) ||
|
|
||||||
JFaceResources.DIALOG_FONT.equals( event.getProperty() ) )
|
|
||||||
{
|
|
||||||
updateMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
fMessageLabel.addDisposeListener(
|
|
||||||
new DisposeListener()
|
|
||||||
{
|
|
||||||
public void widgetDisposed( DisposeEvent event )
|
|
||||||
{
|
|
||||||
JFaceResources.getFontRegistry().removeListener( fontListener );
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
|
|
||||||
JFaceResources.getFontRegistry().addListener( fontListener );
|
|
||||||
|
|
||||||
GridData gd = new GridData( GridData.FILL_BOTH );
|
|
||||||
fMessageLabel.setLayoutData( gd );
|
|
||||||
|
|
||||||
// Title image
|
|
||||||
fTitleImage = new Label( fTitleArea, SWT.LEFT );
|
|
||||||
fTitleImage.setBackground( bg );
|
|
||||||
fTitleImage.setImage( CDebugUIPlugin.getDefault().getImageRegistry().get( PREF_DLG_TITLE_IMG ) );
|
|
||||||
gd = new GridData();
|
|
||||||
gd.horizontalAlignment = GridData.END;
|
|
||||||
fTitleImage.setLayoutData( gd );
|
|
||||||
|
|
||||||
return fTitleArea;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates the inner page container.
|
|
||||||
*/
|
|
||||||
private Composite createPageContainer( Composite parent, int numColumns )
|
|
||||||
{
|
|
||||||
Composite result = new Composite( parent, SWT.NULL );
|
|
||||||
result.setLayout( new PageLayout() );
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the minimum page size.
|
|
||||||
*
|
|
||||||
* @param size the page size encoded as
|
|
||||||
* <code>new Point(width,height)</code>
|
|
||||||
* @see #setMinimumPageSize(int,int)
|
|
||||||
*/
|
|
||||||
public void setMinimumPageSize( Point size )
|
|
||||||
{
|
|
||||||
fMinimumPageSize.x = size.x;
|
|
||||||
fMinimumPageSize.y = size.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see Dialog#createButtonsForButtonBar(Composite)
|
|
||||||
*/
|
|
||||||
protected void createButtonsForButtonBar( Composite parent )
|
|
||||||
{
|
|
||||||
fOkButton = createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true );
|
|
||||||
createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Point getMinimumPageSize()
|
|
||||||
{
|
|
||||||
return fMinimumPageSize;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,9 +13,13 @@ package org.eclipse.cdt.debug.internal.ui.actions;
|
||||||
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
||||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
||||||
import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants;
|
import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants;
|
||||||
import org.eclipse.jface.dialogs.Dialog;
|
|
||||||
import org.eclipse.jface.text.source.IVerticalRulerInfo;
|
import org.eclipse.jface.text.source.IVerticalRulerInfo;
|
||||||
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
|
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
|
import org.eclipse.jface.viewers.ISelectionProvider;
|
||||||
|
import org.eclipse.jface.viewers.StructuredSelection;
|
||||||
import org.eclipse.ui.IWorkbenchPart;
|
import org.eclipse.ui.IWorkbenchPart;
|
||||||
|
import org.eclipse.ui.dialogs.PropertyDialogAction;
|
||||||
import org.eclipse.ui.help.WorkbenchHelp;
|
import org.eclipse.ui.help.WorkbenchHelp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,8 +44,22 @@ public class CBreakpointPropertiesRulerAction extends AbstractBreakpointRulerAct
|
||||||
*/
|
*/
|
||||||
public void run() {
|
public void run() {
|
||||||
if ( getBreakpoint() != null ) {
|
if ( getBreakpoint() != null ) {
|
||||||
Dialog d = new CBreakpointPropertiesDialog( getTargetPart().getSite().getShell(), (ICBreakpoint)getBreakpoint() );
|
PropertyDialogAction action = new PropertyDialogAction( getTargetPart().getSite().getShell(), new ISelectionProvider() {
|
||||||
d.open();
|
|
||||||
|
public void addSelectionChangedListener( ISelectionChangedListener listener ) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ISelection getSelection() {
|
||||||
|
return new StructuredSelection( getBreakpoint() );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeSelectionChangedListener( ISelectionChangedListener listener ) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelection( ISelection selection ) {
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
action.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
/*******************************************************************************
|
/***************************************************************************************************************************************************************
|
||||||
* Copyright (c) 2000, 2004 QNX Software Systems and others.
|
* Copyright (c) 2000, 2004 QNX Software Systems and others. All rights reserved. This program and the accompanying materials are made available under the terms
|
||||||
* All rights reserved. This program and the accompanying materials
|
* of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html
|
||||||
* 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:
|
* Contributors: QNX Software Systems - Initial API and implementation
|
||||||
* QNX Software Systems - Initial API and implementation
|
**************************************************************************************************************************************************************/
|
||||||
*******************************************************************************/
|
|
||||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
package org.eclipse.cdt.debug.internal.ui.actions;
|
||||||
|
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
|
@ -15,19 +11,12 @@ import org.eclipse.jface.text.source.IVerticalRulerInfo;
|
||||||
import org.eclipse.ui.texteditor.AbstractRulerActionDelegate;
|
import org.eclipse.ui.texteditor.AbstractRulerActionDelegate;
|
||||||
import org.eclipse.ui.texteditor.ITextEditor;
|
import org.eclipse.ui.texteditor.ITextEditor;
|
||||||
|
|
||||||
/**
|
public class CBreakpointPropertiesRulerActionDelegate extends AbstractRulerActionDelegate {
|
||||||
*
|
|
||||||
* Enter type comment.
|
|
||||||
*
|
|
||||||
* @since Aug 29, 2002
|
|
||||||
*/
|
|
||||||
public class CBreakpointPropertiesRulerActionDelegate extends AbstractRulerActionDelegate
|
|
||||||
{
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.ui.texteditor.AbstractRulerActionDelegate#createAction(ITextEditor, IVerticalRulerInfo)
|
* @see org.eclipse.ui.texteditor.AbstractRulerActionDelegate#createAction(org.eclipse.ui.texteditor.ITextEditor, org.eclipse.jface.text.source.IVerticalRulerInfo)
|
||||||
*/
|
*/
|
||||||
protected IAction createAction( ITextEditor editor, IVerticalRulerInfo rulerInfo )
|
protected IAction createAction( ITextEditor editor, IVerticalRulerInfo rulerInfo ) {
|
||||||
{
|
|
||||||
return new CBreakpointPropertiesRulerAction( editor, rulerInfo );
|
return new CBreakpointPropertiesRulerAction( editor, rulerInfo );
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,37 +10,48 @@
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
package org.eclipse.cdt.debug.internal.ui.actions;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
import org.eclipse.cdt.debug.core.CDebugUtils;
|
import org.eclipse.cdt.debug.core.CDebugUtils;
|
||||||
import org.eclipse.cdt.debug.core.model.ICAddressBreakpoint;
|
import org.eclipse.cdt.debug.core.model.ICAddressBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
import org.eclipse.cdt.debug.core.model.ICBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.model.ICFunctionBreakpoint;
|
import org.eclipse.cdt.debug.core.model.ICFunctionBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.model.ICWatchpoint;
|
import org.eclipse.cdt.debug.core.model.ICWatchpoint;
|
||||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||||
|
import org.eclipse.core.resources.IWorkspaceRunnable;
|
||||||
|
import org.eclipse.core.resources.ResourcesPlugin;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
|
import org.eclipse.core.runtime.IAdaptable;
|
||||||
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.debug.core.model.ILineBreakpoint;
|
import org.eclipse.debug.core.model.ILineBreakpoint;
|
||||||
|
import org.eclipse.jface.preference.BooleanFieldEditor;
|
||||||
import org.eclipse.jface.preference.FieldEditor;
|
import org.eclipse.jface.preference.FieldEditor;
|
||||||
import org.eclipse.jface.preference.FieldEditorPreferencePage;
|
import org.eclipse.jface.preference.FieldEditorPreferencePage;
|
||||||
import org.eclipse.jface.preference.IPreferenceStore;
|
import org.eclipse.jface.preference.IPreferenceStore;
|
||||||
import org.eclipse.jface.preference.IntegerFieldEditor;
|
import org.eclipse.jface.preference.IntegerFieldEditor;
|
||||||
import org.eclipse.jface.preference.StringFieldEditor;
|
import org.eclipse.jface.preference.StringFieldEditor;
|
||||||
|
import org.eclipse.jface.util.IPropertyChangeListener;
|
||||||
|
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.layout.GridData;
|
import org.eclipse.swt.layout.GridData;
|
||||||
import org.eclipse.swt.layout.GridLayout;
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Label;
|
import org.eclipse.swt.widgets.Label;
|
||||||
import org.eclipse.swt.widgets.Text;
|
import org.eclipse.swt.widgets.Text;
|
||||||
|
import org.eclipse.ui.IWorkbenchPropertyPage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The preference page used to present the properties of a breakpoint as preferences. A CBreakpointPreferenceStore is used to interface between this page and
|
* The preference page used to present the properties of a breakpoint as preferences. A CBreakpointPreferenceStore is used to interface between this page and
|
||||||
* the breakpoint.
|
* the breakpoint.
|
||||||
*/
|
*/
|
||||||
public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
public class CBreakpointPropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage {
|
||||||
|
|
||||||
class BreakpointIntegerFieldEditor extends IntegerFieldEditor {
|
class BreakpointIntegerFieldEditor extends IntegerFieldEditor {
|
||||||
|
|
||||||
public BreakpointIntegerFieldEditor( String name, String labelText, Composite parent ) {
|
public BreakpointIntegerFieldEditor( String name, String labelText, Composite parent ) {
|
||||||
super( name, labelText, parent );
|
super( name, labelText, parent );
|
||||||
setErrorMessage( ActionMessages.getString( "CBreakpointPreferencePage.0" ) ); //$NON-NLS-1$
|
setErrorMessage( ActionMessages.getString( "CBreakpointPropertyPage.0" ) ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -203,23 +214,31 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BooleanFieldEditor fEnabled;
|
||||||
|
|
||||||
private BreakpointStringFieldEditor fCondition;
|
private BreakpointStringFieldEditor fCondition;
|
||||||
|
|
||||||
private Text fIgnoreCountTextControl;
|
private Text fIgnoreCountTextControl;
|
||||||
|
|
||||||
private BreakpointIntegerFieldEditor fIgnoreCount;
|
private BreakpointIntegerFieldEditor fIgnoreCount;
|
||||||
|
|
||||||
private ICBreakpoint fBreakpoint;
|
private IAdaptable fElement;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for CBreakpointPreferencePage.
|
* The "fake" preference store used to interface between
|
||||||
|
* the breakpoint and the breakpoint preference page.
|
||||||
|
*/
|
||||||
|
private CBreakpointPreferenceStore fCBreakpointPreferenceStore;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for CBreakpointPropertyPage.
|
||||||
*
|
*
|
||||||
* @param breakpoint
|
* @param breakpoint
|
||||||
*/
|
*/
|
||||||
public CBreakpointPreferencePage( ICBreakpoint breakpoint ) {
|
public CBreakpointPropertyPage() {
|
||||||
super( GRID );
|
super( GRID );
|
||||||
setBreakpoint( breakpoint );
|
|
||||||
noDefaultAndApplyButton();
|
noDefaultAndApplyButton();
|
||||||
|
fCBreakpointPreferenceStore = new CBreakpointPreferenceStore();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -230,6 +249,7 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
protected void createFieldEditors() {
|
protected void createFieldEditors() {
|
||||||
ICBreakpoint breakpoint = getBreakpoint();
|
ICBreakpoint breakpoint = getBreakpoint();
|
||||||
createTypeSpecificLabelFieldEditors( breakpoint );
|
createTypeSpecificLabelFieldEditors( breakpoint );
|
||||||
|
createEnabledField( getFieldEditorParent() );
|
||||||
IPreferenceStore store = getPreferenceStore();
|
IPreferenceStore store = getPreferenceStore();
|
||||||
try {
|
try {
|
||||||
String condition = breakpoint.getCondition();
|
String condition = breakpoint.getCondition();
|
||||||
|
@ -256,7 +276,8 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
private void createTypeSpecificLabelFieldEditors( ICBreakpoint breakpoint ) {
|
private void createTypeSpecificLabelFieldEditors( ICBreakpoint breakpoint ) {
|
||||||
if ( breakpoint instanceof ICFunctionBreakpoint ) {
|
if ( breakpoint instanceof ICFunctionBreakpoint ) {
|
||||||
ICFunctionBreakpoint fbrkpt = (ICFunctionBreakpoint)breakpoint;
|
ICFunctionBreakpoint fbrkpt = (ICFunctionBreakpoint)breakpoint;
|
||||||
String function = ActionMessages.getString( "CBreakpointPreferencePage.1" ); //$NON-NLS-1$
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), ActionMessages.getString( "CBreakpointPropertyPage.3" ) ) ); //$NON-NLS-1$//$NON-NLS-2$
|
||||||
|
String function = ActionMessages.getString( "CBreakpointPropertyPage.1" ); //$NON-NLS-1$
|
||||||
try {
|
try {
|
||||||
function = fbrkpt.getFunction();
|
function = fbrkpt.getFunction();
|
||||||
}
|
}
|
||||||
|
@ -265,13 +286,13 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
catch( NumberFormatException e ) {
|
catch( NumberFormatException e ) {
|
||||||
}
|
}
|
||||||
if ( function != null ) {
|
if ( function != null ) {
|
||||||
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.2" ), function ) ); //$NON-NLS-1$
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.2" ), function ) ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
setTitle( ActionMessages.getString( "CBreakpointPreferencePage.3" ) ); //$NON-NLS-1$
|
|
||||||
}
|
}
|
||||||
else if ( breakpoint instanceof ICAddressBreakpoint ) {
|
else if ( breakpoint instanceof ICAddressBreakpoint ) {
|
||||||
ICAddressBreakpoint abrkpt = (ICAddressBreakpoint)breakpoint;
|
ICAddressBreakpoint abrkpt = (ICAddressBreakpoint)breakpoint;
|
||||||
String address = ActionMessages.getString( "CBreakpointPreferencePage.4" ); //$NON-NLS-1$
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), ActionMessages.getString( "CBreakpointPropertyPage.6" ) ) ); //$NON-NLS-1$//$NON-NLS-2$
|
||||||
|
String address = ActionMessages.getString( "CBreakpointPropertyPage.4" ); //$NON-NLS-1$
|
||||||
try {
|
try {
|
||||||
address = CDebugUtils.toHexAddressString( Long.parseLong( abrkpt.getAddress() ) );
|
address = CDebugUtils.toHexAddressString( Long.parseLong( abrkpt.getAddress() ) );
|
||||||
}
|
}
|
||||||
|
@ -280,16 +301,15 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
catch( NumberFormatException e ) {
|
catch( NumberFormatException e ) {
|
||||||
}
|
}
|
||||||
if ( address != null ) {
|
if ( address != null ) {
|
||||||
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.5" ), address ) ); //$NON-NLS-1$
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.5" ), address ) ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
setTitle( ActionMessages.getString( "CBreakpointPreferencePage.6" ) ); //$NON-NLS-1$
|
|
||||||
}
|
}
|
||||||
else if ( breakpoint instanceof ILineBreakpoint ) {
|
else if ( breakpoint instanceof ILineBreakpoint ) {
|
||||||
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), ActionMessages.getString( "CBreakpointPropertyPage.8" ) ) ); //$NON-NLS-1$//$NON-NLS-2$
|
||||||
String fileName = breakpoint.getMarker().getResource().getLocation().toOSString();
|
String fileName = breakpoint.getMarker().getResource().getLocation().toOSString();
|
||||||
if ( fileName != null ) {
|
if ( fileName != null ) {
|
||||||
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.7" ), fileName ) ); //$NON-NLS-1$
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.7" ), fileName ) ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
setTitle( ActionMessages.getString( "CBreakpointPreferencePage.8" ) ); //$NON-NLS-1$
|
|
||||||
ILineBreakpoint lBreakpoint = (ILineBreakpoint)breakpoint;
|
ILineBreakpoint lBreakpoint = (ILineBreakpoint)breakpoint;
|
||||||
StringBuffer lineNumber = new StringBuffer( 4 );
|
StringBuffer lineNumber = new StringBuffer( 4 );
|
||||||
try {
|
try {
|
||||||
|
@ -302,43 +322,48 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
CDebugUIPlugin.log( ce );
|
CDebugUIPlugin.log( ce );
|
||||||
}
|
}
|
||||||
if ( lineNumber.length() > 0 ) {
|
if ( lineNumber.length() > 0 ) {
|
||||||
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.9" ), lineNumber.toString() ) ); //$NON-NLS-1$
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.9" ), lineNumber.toString() ) ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( breakpoint instanceof ICWatchpoint ) {
|
else if ( breakpoint instanceof ICWatchpoint ) {
|
||||||
String projectName = breakpoint.getMarker().getResource().getLocation().toOSString();
|
|
||||||
if ( projectName != null ) {
|
|
||||||
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.10" ), projectName ) ); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
ICWatchpoint watchpoint = (ICWatchpoint)breakpoint;
|
ICWatchpoint watchpoint = (ICWatchpoint)breakpoint;
|
||||||
String title = ""; //$NON-NLS-1$
|
String type = ""; //$NON-NLS-1$
|
||||||
String expression = ""; //$NON-NLS-1$
|
String expression = ""; //$NON-NLS-1$
|
||||||
try {
|
try {
|
||||||
if ( watchpoint.isReadType() && !watchpoint.isWriteType() )
|
if ( watchpoint.isReadType() && !watchpoint.isWriteType() )
|
||||||
title = ActionMessages.getString( "CBreakpointPreferencePage.11" ); //$NON-NLS-1$
|
type = ActionMessages.getString( "CBreakpointPropertyPage.11" ); //$NON-NLS-1$
|
||||||
else if ( !watchpoint.isReadType() && watchpoint.isWriteType() )
|
else if ( !watchpoint.isReadType() && watchpoint.isWriteType() )
|
||||||
title = ActionMessages.getString( "CBreakpointPreferencePage.12" ); //$NON-NLS-1$
|
type = ActionMessages.getString( "CBreakpointPropertyPage.12" ); //$NON-NLS-1$
|
||||||
else
|
else
|
||||||
title = ActionMessages.getString( "CBreakpointPreferencePage.13" ); //$NON-NLS-1$
|
type = ActionMessages.getString( "CBreakpointPropertyPage.13" ); //$NON-NLS-1$
|
||||||
expression = watchpoint.getExpression();
|
expression = watchpoint.getExpression();
|
||||||
}
|
}
|
||||||
catch( CoreException ce ) {
|
catch( CoreException ce ) {
|
||||||
CDebugUIPlugin.log( ce );
|
CDebugUIPlugin.log( ce );
|
||||||
}
|
}
|
||||||
setTitle( title );
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.18" ), type ) ); //$NON-NLS-1$
|
||||||
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPreferencePage.14" ), expression ) ); //$NON-NLS-1$
|
String projectName = breakpoint.getMarker().getResource().getLocation().toOSString();
|
||||||
|
if ( projectName != null ) {
|
||||||
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.10" ), projectName ) ); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
addField( createLabelEditor( getFieldEditorParent(), ActionMessages.getString( "CBreakpointPropertyPage.14" ), expression ) ); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void createEnabledField( Composite parent ) {
|
||||||
|
fEnabled = new BooleanFieldEditor( CBreakpointPreferenceStore.ENABLED, ActionMessages.getString( "CBreakpointPropertyPage.19" ), parent ); //$NON-NLS-1$
|
||||||
|
addField( fEnabled );
|
||||||
|
}
|
||||||
|
|
||||||
protected void createConditionEditor( Composite parent ) {
|
protected void createConditionEditor( Composite parent ) {
|
||||||
fCondition = new BreakpointStringFieldEditor( CBreakpointPreferenceStore.CONDITION, ActionMessages.getString( "CBreakpointPreferencePage.15" ), parent ); //$NON-NLS-1$
|
fCondition = new BreakpointStringFieldEditor( CBreakpointPreferenceStore.CONDITION, ActionMessages.getString( "CBreakpointPropertyPage.15" ), parent ); //$NON-NLS-1$
|
||||||
fCondition.setEmptyStringAllowed( true );
|
fCondition.setEmptyStringAllowed( true );
|
||||||
fCondition.setErrorMessage( ActionMessages.getString( "CBreakpointPreferencePage.16" ) ); //$NON-NLS-1$
|
fCondition.setErrorMessage( ActionMessages.getString( "CBreakpointPropertyPage.16" ) ); //$NON-NLS-1$
|
||||||
addField( fCondition );
|
addField( fCondition );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void createIgnoreCountEditor( Composite parent ) {
|
protected void createIgnoreCountEditor( Composite parent ) {
|
||||||
fIgnoreCount = new BreakpointIntegerFieldEditor( CBreakpointPreferenceStore.IGNORE_COUNT, ActionMessages.getString( "CBreakpointPreferencePage.17" ), parent ); //$NON-NLS-1$
|
fIgnoreCount = new BreakpointIntegerFieldEditor( CBreakpointPreferenceStore.IGNORE_COUNT, ActionMessages.getString( "CBreakpointPropertyPage.17" ), parent ); //$NON-NLS-1$
|
||||||
fIgnoreCount.setValidRange( 0, Integer.MAX_VALUE );
|
fIgnoreCount.setValidRange( 0, Integer.MAX_VALUE );
|
||||||
fIgnoreCountTextControl = fIgnoreCount.getTextControl( parent );
|
fIgnoreCountTextControl = fIgnoreCount.getTextControl( parent );
|
||||||
try {
|
try {
|
||||||
|
@ -355,10 +380,69 @@ public class CBreakpointPreferencePage extends FieldEditorPreferencePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ICBreakpoint getBreakpoint() {
|
protected ICBreakpoint getBreakpoint() {
|
||||||
return fBreakpoint;
|
IAdaptable element = getElement();
|
||||||
|
return ( element instanceof ICBreakpoint ) ? (ICBreakpoint)element : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setBreakpoint( ICBreakpoint breakpoint ) {
|
/* (non-Javadoc)
|
||||||
fBreakpoint = breakpoint;
|
* @see org.eclipse.ui.IWorkbenchPropertyPage#getElement()
|
||||||
|
*/
|
||||||
|
public IAdaptable getElement() {
|
||||||
|
return fElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.ui.IWorkbenchPropertyPage#setElement(org.eclipse.core.runtime.IAdaptable)
|
||||||
|
*/
|
||||||
|
public void setElement( IAdaptable element ) {
|
||||||
|
fElement = element;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IPreferenceStore getPreferenceStore() {
|
||||||
|
return fCBreakpointPreferenceStore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean performOk() {
|
||||||
|
final List changedProperties = new ArrayList( 5 );
|
||||||
|
getPreferenceStore().addPropertyChangeListener( new IPropertyChangeListener() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
|
||||||
|
*/
|
||||||
|
public void propertyChange( PropertyChangeEvent event ) {
|
||||||
|
changedProperties.add( event.getProperty() );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
boolean result = super.performOk();
|
||||||
|
setBreakpointProperties( changedProperties );
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setBreakpointProperties( final List changedProperties ) {
|
||||||
|
IWorkspaceRunnable wr = new IWorkspaceRunnable() {
|
||||||
|
|
||||||
|
public void run( IProgressMonitor monitor ) throws CoreException {
|
||||||
|
ICBreakpoint breakpoint = getBreakpoint();
|
||||||
|
Iterator changed = changedProperties.iterator();
|
||||||
|
while( changed.hasNext() ) {
|
||||||
|
String property = (String)changed.next();
|
||||||
|
if ( property.equals( CBreakpointPreferenceStore.ENABLED ) ) {
|
||||||
|
breakpoint.setEnabled( getPreferenceStore().getBoolean( CBreakpointPreferenceStore.ENABLED ) );
|
||||||
|
}
|
||||||
|
else if ( property.equals( CBreakpointPreferenceStore.IGNORE_COUNT ) ) {
|
||||||
|
breakpoint.setIgnoreCount( getPreferenceStore().getInt( CBreakpointPreferenceStore.IGNORE_COUNT ) );
|
||||||
|
}
|
||||||
|
else if ( property.equals( CBreakpointPreferenceStore.CONDITION ) ) {
|
||||||
|
breakpoint.setCondition( getPreferenceStore().getString( CBreakpointPreferenceStore.CONDITION ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
ResourcesPlugin.getWorkspace().run( wr, null );
|
||||||
|
}
|
||||||
|
catch( CoreException ce ) {
|
||||||
|
CDebugUIPlugin.log( ce );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue